Membuat aturan siklus hidup berdasarkan waktu modifikasi terakhir atau waktu akses terakhir file untuk secara berkala mengubah kelas penyimpanan beberapa file dalam bucket ke nilai tertentu atau secara berkala menghapus objek dan bagian yang kedaluwarsa. Ini mengurangi biaya penyimpanan. Topik ini menjelaskan cara memanggil operasi PutBucketLifecycle untuk mengonfigurasi aturan siklus hidup pada sebuah bucket.
Catatan
Operasi PutBucketLifecycle menimpa konfigurasi yang ada dari aturan siklus hidup yang dikonfigurasi untuk sebuah bucket. Sebagai contoh, jika aturan siklus hidup bernama Rule1 telah dikonfigurasikan untuk sebuah bucket dan Anda ingin menambahkan aturan siklus hidup bernama Rule2 berdasarkan Rule1, ikuti langkah-langkah berikut:
Panggil operasi GetBucketLifecycle untuk menanyakan konfigurasi Rule1.
Konfigurasikan Rule2 untuk bucket berdasarkan Rule1.
Panggil operasi PutBucketLifecycle untuk memperbarui konfigurasi aturan siklus hidup bucket. Rule1 dan Rule2 akan diterapkan pada bucket tersebut.
Anda dapat menggunakan aturan siklus hidup untuk menentukan waktu kedaluwarsa objek dan bagian yang diunggah dalam tugas pengunggahan multipart yang tidak lengkap.
Anda dapat mengonfigurasi aturan siklus hidup untuk objek berdasarkan waktu akses terakhir atau waktu modifikasi terakhir mereka.
Izin
Secara default, akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui Kebijakan RAM atau Kebijakan Bucket.
API | Aksi | Definisi |
PutBucketLifecycle | oss:PutBucketLifecycle | Mengonfigurasi aturan siklus hidup untuk sebuah bucket. |
Sintaks permintaan
PUT /?lifecycle HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Authorization: SignatureValue
Host: BucketName.oss.aliyuncs.com
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration>
<Rule>
<ID>RuleID</ID>
<Prefix>Prefix</Prefix>
<Status>Status</Status>
<Expiration>
<Days>Days</Days>
</Expiration>
<Transition>
<Days>Days</Days>
<StorageClass>StorageClass</StorageClass>
</Transition>
<AbortMultipartUpload>
<Days>Days</Days>
</AbortMultipartUpload>
</Rule>
</LifecycleConfiguration>Header permintaan
Header | Tipe | Wajib | Contoh | Deskripsi |
x-oss-allow-same-action-overlap | String | Tidak | true | Menentukan apakah awalan yang tumpang tindih diperbolehkan. Nilai valid:
|
Permintaan ini mencakup header permintaan umum lainnya, seperti Date dan Authorization. Untuk informasi lebih lanjut, lihat bagian "Header Permintaan Umum" dari topik Header HTTP Umum.
Elemen permintaan
Elemen | Tipe | Diperlukan | Contoh | Deskripsi |
LifecycleConfiguration | Container | Ya | N/A | Wadah yang menyimpan konfigurasi siklus hidup. Wadah dapat menyimpan hingga 1.000 konfigurasi aturan siklus hidup. Node anak: Rule Node induk: none |
Rule | Container | Ya | N/A | Wadah yang menyimpan aturan siklus hidup. Jangka waktu dari saat objek kedaluwarsa hingga objek dihapus harus lebih lama daripada jangka waktu dari saat objek kedaluwarsa hingga kelas penyimpanan objek diubah menjadi Infrequent Access (IA) atau Arsip. Node anak: ID, Prefix, Status, dan Expiration Node induk: LifecycleConfiguration |
ID | String | Tidak | rule1 | ID aturan siklus hidup. ID dapat mencapai panjang maksimum 255 karakter. Jika Anda tidak menentukan elemen ini atau meninggalkannya kosong, OSS akan secara otomatis menghasilkan ID unik untuk aturan siklus hidup. Node anak: none Node induk: Rule |
Prefix | String | Tidak | tmp/ | Awalan dalam nama objek yang berlaku untuk aturan. Awalan yang ditentukan oleh aturan berbeda tidak boleh tumpang tindih.
Node anak: none Node induk: Rule |
Status | String | Ya | Enabled | Menentukan apakah akan mengaktifkan aturan. Nilai valid:
Node induk: Rule |
Expiration | Container | Tidak | N/A | Operasi penghapusan yang Anda inginkan OSS lakukan pada objek yang sesuai dengan aturan siklus hidup ketika objek kedaluwarsa. Untuk objek dalam bucket yang memiliki versi, operasi penghapusan yang ditentukan oleh elemen ini hanya dilakukan pada versi saat ini dari objek. Jangka waktu dari saat objek kedaluwarsa hingga objek dihapus harus lebih lama daripada jangka waktu dari saat objek kedaluwarsa hingga kelas penyimpanan objek diubah menjadi IA atau Arsip. Node anak: Days, CreatedBeforeDate, atau ExpiredObjectDeleteMarker Node induk: Rule |
Days | Bilangan bulat positif | Days atau CreatedBeforeDate diperlukan | 1 | Jumlah hari dari saat objek terakhir dimodifikasi hingga aturan siklus hidup mulai berlaku. Jika elemen IsAccessTime disetel ke true, nilai elemen Days menentukan bahwa aturan siklus hidup mulai berlaku berdasarkan jumlah hari yang ditentukan setelah objek terakhir diakses. Node induk: Expiration atau AbortMultipartUpload |
CreatedBeforeDate | String | Days atau CreatedBeforeDate diperlukan | 2002-10-11T00:00:00.000Z | Tanggal berdasarkan mana aturan siklus hidup mulai berlaku. OSS melakukan operasi yang ditentukan pada data yang tanggal modifikasi terakhirnya lebih awal dari tanggal ini. Nilai elemen ini dalam format yyyy-MM-ddT00:00:00.000Z. Tentukan waktu dalam standar ISO 8601. Waktu harus 00:00:00 dalam UTC. Node induk: Expiration atau AbortMultipartUpload |
ExpiredObjectDeleteMarker | String | Tidak | true | Menentukan apakah akan secara otomatis menghapus penanda hapus yang kedaluwarsa. Nilai valid:
Node induk: Expiration |
Transition | Container | Tidak | N/A | Perubahan kelas penyimpanan objek yang sesuai dengan aturan siklus hidup ketika objek kedaluwarsa. Kelas penyimpanan objek Standar dapat diubah menjadi IA, Arsip, atau Penyimpanan Arsip Dingin. Jangka waktu dari saat objek kedaluwarsa hingga kelas penyimpanan objek diubah menjadi Arsip harus lebih lama daripada jangka waktu dari saat objek kedaluwarsa hingga kelas penyimpanan objek diubah menjadi IA. Sebagai contoh, jika periode validitas diatur menjadi 30 untuk objek yang kelas penyimpanannya diubah menjadi IA setelah periode validitas, periode validitas harus diatur menjadi nilai lebih besar dari 30 untuk objek yang kelas penyimpanannya diubah menjadi Arsip. Node induk: Rule Node anak: Days, CreatedBeforeDate, dan StorageClass Penting Penting Days atau CreatedBeforeDate diperlukan. |
StorageClass | String | Ya jika Transition atau NoncurrentVersionTransition ditentukan | IA | Kelas penyimpanan ke mana objek diubah. Nilai valid:
Penting Anda dapat mengubah kelas penyimpanan objek dalam bucket IA hanya ke Arsip atau Penyimpanan Arsip Dingin. Node induk: Transition |
AbortMultipartUpload | Container | Tidak | N/A | Operasi penghapusan yang Anda inginkan OSS lakukan pada bagian yang diunggah dalam tugas pengunggahan multipart yang tidak lengkap ketika bagian tersebut kedaluwarsa. Node anak: Days atau CreatedBeforeDate Node induk: Rule |
Tag | Container | Tidak | N/A | Tag objek yang berlaku untuk aturan siklus hidup. Anda dapat menentukan beberapa tag. Node induk: Rule Node anak: Key dan Value |
Key | String | Ya jika elemen Tag ditentukan | TagKey1 | Kunci tag yang ditentukan untuk objek. Node induk: Tag |
Value | String | Ya jika elemen Tag ditentukan | TagValue1 | Nilai tag yang ditentukan untuk objek. Node induk: Tag |
NoncurrentVersionExpiration | Container | Tidak | N/A | Operasi penghapusan yang Anda inginkan OSS lakukan pada versi sebelumnya dari objek yang sesuai dengan aturan siklus hidup ketika versi sebelumnya kedaluwarsa. Node anak: NoncurrentDays |
NoncurrentVersionTransition | Container | Tidak | N/A | Perubahan kelas penyimpanan versi sebelumnya dari objek yang sesuai dengan aturan siklus hidup ketika versi sebelumnya kedaluwarsa. Kelas penyimpanan versi sebelumnya dapat diubah menjadi IA atau Arsip. Jangka waktu dari saat versi sebelumnya kedaluwarsa hingga kelas penyimpanan versi sebelumnya diubah menjadi Arsip harus lebih lama daripada jangka waktu dari saat versi sebelumnya kedaluwarsa hingga kelas penyimpanan versi sebelumnya diubah menjadi IA. Node anak: NoncurrentDays dan StorageClass |
NoncurrentDays | String | Ya jika NoncurrentVersionExpiration atau NoncurrentVersionTransition ditentukan | 10 | Jumlah hari dari saat objek menjadi versi sebelumnya hingga aturan siklus hidup mulai berlaku. Jika elemen IsAccessTime disetel ke true, elemen NoncurrentDays mulai berlaku berdasarkan jumlah hari yang ditentukan setelah objek terakhir diakses. Node induk: NoncurrentVersionTransition dan NoncurrentVersionExpiration |
IsAccessTime | String | Tidak | true | Menentukan apakah aturan siklus hidup berlaku untuk objek berdasarkan waktu akses terakhir mereka. Nilai valid:
Node induk: Transition atau NoncurrentVersionTransition |
ReturnToStdWhenVisit | String | Tidak | false | Menentukan apakah mengubah kelas penyimpanan objek non-Standar kembali ke Standar setelah objek diakses. Elemen ini hanya berlaku ketika elemen IsAccessTime disetel ke true. Nilai valid:
Node induk: Transition atau NoncurrentVersionTransition |
AllowSmallFile | String | Tidak | false | Menentukan apakah akan mengubah kelas penyimpanan objek yang ukurannya kurang dari 64 KB menjadi IA, Arsip, atau Penyimpanan Arsip Dingin berdasarkan waktu akses terakhir mereka. Nilai valid:
Node induk: Transition atau NoncurrentVersionTransition |
Filter | Container | Tidak | N/A | Wadah yang menyimpan elemen Not yang digunakan untuk memfilter objek. Anda dapat membiarkan elemen ini kosong atau hanya menentukan satu node Not tunggal. Node induk: Rule Node anak: Not |
Not | Container | Tidak | N/A | Kondisi yang sesuai dengan objek yang tidak berlaku aturan siklus hidup. Jika Anda menentukan nilai untuk elemen Filter, Anda harus menentukan hanya satu node Not tunggal. Node induk: Filter Node anak: Prefix dan Tag |
Prefix | String | Ya | tmp/not/ | Awalan dalam nama objek yang tidak berlaku aturan siklus hidup. Anda tidak dapat membiarkan elemen ini kosong.
Node induk: Not Node anak: none |
Tag | Container | Tidak | N/A | Tag objek yang tidak berlaku aturan siklus hidup. Anda dapat menentukan hanya satu tag tunggal atau membiarkan elemen ini kosong. |
ObjectSizeGreaterThan | Bilangan bulat positif | Tidak | 500 | Ukuran objek minimum yang berlaku untuk aturan ini. Anda dapat menentukan hanya satu nilai atau membiarkan elemen ini kosong. Jika kedua parameter ini dan parameter ObjectSizeLessThan disetel, sistem akan memverifikasi bahwa ukuran objek berada dalam rentang yang ditentukan - lebih besar dari ukuran minimum dan lebih kecil dari ukuran maksimum. Parameter ini dan parameter AllowSmallFile saling eksklusif. Node induk: Filter Node anak: none |
ObjectSizeLessThan | Bilangan bulat positif | Tidak | 64000 | Ukuran objek minimum yang berlaku untuk aturan ini. Anda dapat menentukan hanya satu nilai atau membiarkan elemen ini kosong. Jika kedua parameter ini dan parameter ObjectSizeGreaterThan disetel, sistem akan memverifikasi bahwa ukuran objek berada dalam rentang yang ditentukan - lebih besar dari ukuran minimum dan lebih kecil dari ukuran maksimum. Parameter ini dan parameter AllowSmallFile saling eksklusif. Node induk: Filter Node anak: none |
Header respons
Semua header dalam respons terhadap permintaan DescribeRegions adalah header respons umum. Untuk informasi lebih lanjut, lihat Header Respons Umum.
Contoh
Permintaan sampel
Contoh 1: Mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk hanya mengubah kelas penyimpanan objek
Contoh 2: Mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk hanya menghapus objek
Contoh 3: Mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk mengubah kelas penyimpanan objek dan menghapus objek
Contoh 4: Mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk menghapus versi sebelumnya dari objek dan menghapus penanda hapus
Contoh 5: Mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk mengubah kelas penyimpanan objek dan menghapus objek, kecuali objek yang namanya mengandung awalan tertentu atau objek yang memiliki tag tertentu
Contoh 6: Mengonfigurasi aturan siklus hidup berdasarkan waktu akses terakhir untuk mengubah kelas penyimpanan objek
Contoh 7: Mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk menghapus bagian
Contoh 8: Mengonfigurasi aturan siklus hidup berdasarkan waktu modifikasi terakhir untuk menghapus objek yang namanya mengandung awalan tumpang tindih
Respons sampel
HTTP/1.1 200 OK
x-oss-request-id: 7D3435J59A9812BAD56E
Date: Mon, 6 May 2019 15:23:20 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSSOSS SDK
Anda dapat menggunakan OSS SDK untuk bahasa pemrograman berikut untuk memanggil operasi PutBucketLifecycle:
ossutil
Untuk informasi tentang perintah ossutil yang sesuai dengan operasi PutBucketLifecycle, lihat put-bucket-lifecycle.
Referensi
Untuk informasi lebih lanjut tentang aturan siklus hidup, lihat Siklus Hidup.
Kode kesalahan
Kode kesalahan | Kode status HTTP | Deskripsi |
InvalidArgument | 400 | Penyebab potensial:
|
AccessDenied | 403 | Anda tidak memiliki izin untuk melakukan operasi PutBucketLifecycle. Hanya pengguna yang memiliki izin |
MalforedXML | 400 | Kode kesalahan MalformedXML dikembalikan pada validasi XML dari aturan siklus hidup. Sebagai contoh, jika Anda mengonfigurasi aturan siklus hidup untuk bucket berdasarkan waktu akses terakhir objek dalam bucket dan tidak mengaktifkan pelacakan akses untuk bucket tersebut, kesalahan ini terjadi. |