Anda dapat membuat aturan lifecycle berdasarkan waktu modifikasi terakhir atau waktu akses terakhir. Aturan ini secara berkala mengubah kelas penyimpanan objek dalam bucket atau menghapus objek dan bagian yang kedaluwarsa untuk menghemat biaya penyimpanan. Topik ini menjelaskan cara memanggil operasi PutBucketLifecycle untuk mengonfigurasi aturan lifecycle bagi sebuah bucket.
Catatan
-
Operasi PutBucketLifecycle akan menimpa aturan lifecycle yang sudah ada. Misalnya, jika sebuah bucket memiliki aturan lifecycle bernama Rule1 dan Anda ingin menambahkan aturan lifecycle bernama Rule2, lakukan langkah-langkah berikut:
-
Panggil operasi GetBucketLifecycle untuk mengambil konfigurasi Rule1.
-
Anda dapat menerapkan Rule2 sebagai tambahan dari Rule1.
-
Panggil operasi PutBucketLifecycle untuk menerapkan konfigurasi baru yang mencakup Rule1 dan Rule2.
-
-
Anda dapat menetapkan waktu kedaluwarsa untuk objek dan bagian. Bagian merupakan fragmen yang belum di-commit dari unggah multi-bagian.
-
Anda dapat mencocokkan aturan berdasarkan waktu akses terakhir atau waktu modifikasi terakhir.
-
Setelah opsi NOT diaktifkan, Anda tidak dapat mengonfigurasi kebijakan kedaluwarsa bagian atau menghapus penanda hapus objek.
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 |
Deskripsi |
|
PutBucketLifecycle |
oss:PutBucketLifecycle |
Mengonfigurasi aturan lifecycle untuk bucket. |
Sintaksis 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
|
Nama |
Tipe |
Wajib |
Contoh |
Deskripsi |
|
x-oss-allow-same-action-overlap |
string |
Tidak |
true |
Menentukan apakah akan mengizinkan aturan lifecycle memiliki awalan yang tumpang tindih. Nilai yang valid:
|
Operasi ini menggunakan header permintaan umum, seperti Date dan Authorization. Untuk informasi selengkapnya, lihat Header permintaan umum.
Elemen permintaan
|
Nama |
Tipe |
Wajib |
Contoh |
Deskripsi |
|
LifecycleConfiguration |
Kontainer |
Ya |
N/A |
Kontainer untuk konfigurasi lifecycle. Anda dapat mengonfigurasi hingga 1.000 aturan. Node anak: Rule Node induk: Tidak ada |
|
Rule |
Kontainer |
Ya |
N/A |
Kontainer untuk aturan lifecycle. Waktu kedaluwarsa objek harus lebih lambat daripada waktu saat objek diubah ke kelas penyimpanan Infrequent Access (IA) atau Archive Storage. Node anak: ID, Prefix, Status, dan Expiration Node induk: LifecycleConfiguration |
|
ID |
string |
Tidak |
rule1 |
ID unik dari aturan. Panjang ID bisa mencapai 255 karakter. Jika Anda tidak menentukan elemen ini atau membiarkannya kosong, OSS akan menghasilkan ID unik secara otomatis. Node anak: Tidak ada Node induk: Rule |
|
Prefix |
string |
Tidak |
tmp/ |
Awalan yang menentukan objek tempat berlakunya aturan. Anda tidak dapat menetapkan awalan yang sama untuk aturan yang berbeda.
Node anak: Tidak ada Node induk: Rule |
|
Status |
string |
Ya |
Enabled |
Menentukan apakah akan mengaktifkan aturan. Nilai yang valid:
Node induk: Rule |
|
Expiration |
Kontainer |
Tidak |
N/A |
Menentukan properti kedaluwarsa objek. Untuk bucket dengan Pengendalian versi diaktifkan, waktu kedaluwarsa yang ditentukan hanya berlaku untuk versi objek saat ini. Waktu kedaluwarsa objek harus lebih lambat daripada waktu saat objek diubah ke kelas penyimpanan IA atau Archive Storage. Node anak: Days, CreatedBeforeDate, atau ExpiredObjectDeleteMarker Node induk: Rule |
|
Days |
Bilangan bulat positif |
Days dan CreatedBeforeDate saling eksklusif |
1 |
Menentukan jumlah hari setelah pembaruan terakhir objek ketika aturan lifecycle mulai berlaku. Jika parameter IsAccessTime diatur ke true dalam permintaan, parameter ini menentukan jumlah hari setelah akses terakhir objek ketika aturan lifecycle mulai berlaku. Node induk: Expiration atau AbortMultipartUpload |
|
CreatedBeforeDate |
string |
CreatedBeforeDate dan Days saling eksklusif |
2002-10-11T00:00:00.000Z |
Menentukan tanggal. OSS menerapkan aturan lifecycle pada data yang terakhir diperbarui sebelum tanggal ini. Tanggal harus dalam format yyyy-MM-ddT00:00:00.000Z. Tanggal harus dalam UTC dan mematuhi standar ISO 8601. Waktu harus 00:00:00. Node induk: Expiration atau AbortMultipartUpload |
|
ExpiredObjectDeleteMarker |
string |
Tidak |
true |
Menentukan apakah akan menghapus penanda hapus yang kedaluwarsa secara otomatis. Nilai yang valid:
Node induk: Expiration |
|
Transition |
Kontainer |
Tidak |
N/A |
Menentukan kapan OSS mengubah kelas penyimpanan objek selama siklus hidupnya yang valid. Anda dapat mengubah objek Standard dalam bucket Standard ke kelas penyimpanan IA, Archive, atau Cold Archive. Namun, waktu pengubahan ke Archive harus lebih lambat daripada waktu pengubahan ke IA. Misalnya, jika Anda mengatur Days ke 30 untuk transisi IA, Anda harus mengatur Days ke nilai yang lebih besar dari 30 untuk transisi Archive. Node induk: Rule Node anak: Days, CreatedBeforeDate, dan StorageClass Penting
Penting
Anda dapat menentukan Days atau CreatedBeforeDate. |
|
StorageClass |
string |
Wajib jika node induk adalah Transition atau NoncurrentVersionTransition |
IA |
Menentukan kelas penyimpanan tujuan pengubahan objek. Nilai yang valid:
Penting
Anda dapat mengubah kelas penyimpanan objek dalam bucket IA menjadi Archive Storage atau Cold Archive, tetapi tidak menjadi Standard. Node induk: Transition |
|
AbortMultipartUpload |
Kontainer |
Tidak |
N/A |
Menentukan properti kedaluwarsa untuk bagian yang tidak di-commit dalam unggah multi-bagian. Node anak: Days atau CreatedBeforeDate Node induk: Rule |
|
Tag |
Kontainer |
Tidak |
N/A |
Tag objek tempat berlakunya aturan. Anda dapat menentukan multiple tag. Node induk: Rule Node anak: Key dan Value |
|
Key |
string |
Wajib jika node induk adalah Tag |
TagKey1 |
Kunci dari tag objek. Node induk: Tag |
|
Value |
string |
Wajib jika node induk adalah Tag |
TagValue1 |
Nilai dari tag objek. Node induk: Tag |
|
NoncurrentVersionExpiration |
Kontainer |
Tidak |
N/A |
Menentukan properti kedaluwarsa untuk versi objek sebelumnya. Node anak: NoncurrentDays |
|
NoncurrentVersionTransition |
Kontainer |
Tidak |
N/A |
Menentukan kapan OSS mengubah kelas penyimpanan versi objek sebelumnya menjadi IA atau Archive Storage. Waktu untuk mengubah objek Standard menjadi Archive harus lebih lambat daripada waktu untuk mengubahnya menjadi IA. Node anak: NoncurrentDays dan StorageClass |
|
NoncurrentDays |
string |
Wajib jika node induk adalah NoncurrentVersionExpiration atau NoncurrentVersionTransition |
10 |
Menentukan jumlah hari setelah objek menjadi versi sebelumnya ketika aturan lifecycle mulai berlaku. Jika parameter IsAccessTime diatur ke true dalam permintaan, parameter ini menentukan jumlah hari setelah akses terakhir objek ketika aturan lifecycle mulai berlaku. Node induk: NoncurrentVersionTransition dan NoncurrentVersionExpiration |
|
IsAccessTime |
string |
Tidak |
true |
Menentukan apakah akan mencocokkan aturan berdasarkan waktu akses terakhir. Nilai yang valid:
Node induk: Transition atau NoncurrentVersionTransition. |
|
ReturnToStdWhenVisit |
string |
Tidak |
false |
Menentukan apakah akan mengubah kelas penyimpanan objek non-Standard menjadi Standard saat objek diakses kembali. Parameter ini hanya valid jika IsAccessTime diatur ke true. Nilai yang valid:
Node induk: Transition atau NoncurrentVersionTransition. |
|
AllowSmallFile |
string |
Tidak |
false |
Saat Anda menetapkan aturan lifecycle berdasarkan waktu akses terakhir, parameter ini menentukan apakah akan mengubah objek yang berukuran kurang dari 64 KB ke kelas penyimpanan IA, Archive, atau Cold Archive. Nilai yang valid:
Node induk: Transition atau NoncurrentVersionTransition. |
|
Filter |
Kontainer |
Tidak |
N/A |
Kontainer untuk parameter kondisi dari aturan pengecualian ini. Parameter ini bisa kosong. Node induk: Rule Node anak: Not |
|
Not |
Kontainer |
Tidak |
N/A |
Jika sebuah objek memenuhi kondisi ini, aturan akan dilewati. Penting
Aturan lifecycle kini mendukung konfigurasi multiple elemen NOT. Fitur ini berada dalam pratinjau undangan dan belum tersedia untuk semua pengguna. Untuk meminta akses, hubungi dukungan teknis. Satu bucket dapat berisi hingga 1.000 elemen NOT, satu aturan dapat berisi hingga 100 elemen NOT, dan semua aturan dapat berisi hingga 2.000 elemen Prefix secara total. Node induk: Filter Node anak: Prefix dan Tag |
|
Prefix |
string |
Ya |
tmp/not/ |
Awalan objek tempat berlakunya aturan pengecualian ini. Parameter ini tidak boleh kosong.
Node induk: Not Node anak: Tidak ada |
|
Tag |
Kontainer |
Tidak |
N/A |
Tag objek tempat berlakunya aturan pengecualian ini. Anda dapat menentukan paling banyak satu tag atau membiarkan parameter ini kosong. |
|
ObjectSizeGreaterThan |
Bilangan bulat positif |
Tidak |
500 |
Ukuran objek minimum tempat berlakunya aturan ini. Parameter ini bersifat opsional dan Anda dapat menentukan paling banyak satu. Jika Anda juga mengatur ObjectSizeLessThan, sistem akan memeriksa hubungan ukuran antara keduanya. Parameter ini saling eksklusif dengan AllowSmallFile. Node induk: Filter Node anak: Tidak ada |
|
ObjectSizeLessThan |
Bilangan bulat positif |
Tidak |
64000 |
Ukuran objek maksimum tempat berlakunya aturan ini. Parameter ini bersifat opsional dan Anda dapat menentukan paling banyak satu. Jika Anda juga mengatur ObjectSizeGreaterThan, sistem akan memeriksa hubungan ukuran antara keduanya. Parameter ini saling eksklusif dengan AllowSmallFile. Node induk: Filter Node anak: Tidak ada |
Header respons
Respons hanya berisi header respons umum. Untuk informasi selengkapnya, lihat Header respons umum.
Contoh
Contoh permintaan
Contoh 1: Mengubah kelas penyimpanan objek berdasarkan waktu modifikasi terakhir
Contoh 2: Menghapus objek berdasarkan waktu modifikasi terakhir
Contoh 3: Mengubah kelas penyimpanan objek dan menghapusnya berdasarkan waktu modifikasi terakhir
Contoh 4: Menghapus versi objek sebelumnya dan membersihkan penanda hapus berdasarkan waktu modifikasi terakhir
Contoh 5: Mengubah kelas penyimpanan objek dan menghapusnya berdasarkan waktu modifikasi terakhir, kecuali objek dengan awalan dan tag tertentu
Contoh 6: Mengubah kelas penyimpanan objek berdasarkan waktu akses terakhir
Contoh 7: Menghapus bagian berdasarkan waktu modifikasi terakhir
Contoh 8: Menghapus objek dengan awalan yang tumpang tindih berdasarkan waktu modifikasi terakhir
Contoh respons
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: AliyunOSS
SDK
Anda dapat memanggil operasi ini menggunakan kit pengembangan perangkat lunak (SDK) untuk bahasa pemrograman berikut.
Alat baris perintah ossutil
Untuk informasi tentang perintah ossutil yang sesuai dengan operasi PutBucketLifecycle, lihat put-bucket-lifecycle.
Referensi
Untuk informasi selengkapnya tentang aturan lifecycle, lihat Ikhtisar aturan lifecycle.
Kode error
|
Kode error |
Kode status HTTP |
Deskripsi |
|
InvalidArgument |
400 |
Kemungkinan penyebab error ini:
|
|
AccessDenied |
403 |
Anda tidak memiliki izin yang diperlukan. Hanya pengguna dengan izin |
|
MalforedXML |
400 |
Error validasi XML dalam konfigurasi lifecycle mengakibatkan error MalformedXML. Misalnya, error ini terjadi jika Anda mengonfigurasi aturan lifecycle berdasarkan waktu akses terakhir untuk bucket sebelum Anda mengaktifkan Pelacakan akses untuk bucket tersebut. |