Topik ini menjelaskan elemen-elemen konfigurasi dalam aturan siklus hidup objek.
Contoh XML aturan lifecycle
<LifecycleConfiguration>
<Rule>
<ID>rule1</ID>
<Prefix>logs/</Prefix>
<Status>Enabled</Status>
<Filter>
<Not>
<Prefix>logs1/</Prefix>
<Tag><Key>key1</Key><Value>value1</Value></Tag>
</Not>
</Filter>
<Expiration>
<Days>10</Days>
</Expiration>
</Rule>
<Rule>
<ID>rule2</ID>
<Prefix>doc/</Prefix>
<Status>Disabled</Status>
<Expiration>
<CreatedBeforeDate>2017-12-31T00:00:00.000Z</CreatedBeforeDate>
</Expiration>
</Rule>
<Rule>
<ID>rule3</ID>
<Prefix>logs2/</Prefix>
<Tag><Key>xx</Key><Value>1</Value></Tag>
<Status>Enabled</Status>
<Transition>
<Days>60</Days>
<StorageClass>Archive</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
Contoh di atas berisi tiga aturan:
-
Aturan pertama menghapus objek dengan awalan
logs/yang terakhir dimodifikasi 10 hari lalu. Objek dengan awalanlogs1/dan tagkey1:value1tidak dihapus. -
Aturan kedua dikonfigurasi untuk menghapus objek dengan awalan
doc/yang dimodifikasi sebelum 31 Desember 2017. Namun, aturan ini tidak diterapkan karena statusnyaDisabled. -
Aturan ketiga mengubah kelas penyimpanan objek dengan awalan
logs2/dan tagxx:1menjadiArchive60 hari setelah tanggal modifikasi terakhirnya.
Bagian-bagian berikut menjelaskan elemen konfigurasi dalam aturan lifecycle, seperti elemen ID dan Operation.
Elemen ID
ID aturan lifecycle untuk suatu bucket dapat mencapai panjang maksimum 255 byte. Jika elemen ID tidak ditentukan atau nilainya kosong, OSS secara otomatis menghasilkan ID unik.
Elemen Status
Elemen ini menunjukkan status aturan lifecycle. Anda dapat mengatur status menjadi Enabled atau Disabled. Jika status aturan adalah Disabled, OSS mengabaikan aksi yang telah ditentukan dalam aturan tersebut.
Elemen Prefix
Gunakan elemen <Prefix> untuk menerapkan aturan lifecycle ke semua atau sebagian objek dalam bucket berdasarkan awalan nama objek tersebut.
Elemen Filter
Elemen Filter menentukan kondisi untuk aturan lifecycle. Suatu objek hanya cocok dengan aturan jika memenuhi semua kondisi dalam elemen Filter.
Bukan elemen
Untuk mengecualikan objek tertentu dari aturan yang cocok dengan awalan dan tag tertentu, gunakan elemen Not. Di dalam Not, tentukan awalan dan tag objek yang ingin dikecualikan dari aksi aturan tersebut.
Jika Anda mengonfigurasi beberapa aturan lifecycle untuk suatu bucket, elemen Not hanya berlaku untuk aturan tempat elemen tersebut didefinisikan.
Untuk mengecualikan beberapa subdirektori, jangan mengonfigurasi beberapa aturan di mana masing-masing menggunakan elemen Not untuk mengecualikan subdirektori yang berbeda. Elemen Not dalam aturan yang berbeda bersifat independen dan tidak saling memengaruhi. Misalnya, konfigurasi berikut bertujuan menghapus file dalam dir/ yang berusia lebih dari 30 hari sambil mempertahankan file dalam dir/p1/ dan dir/p2/. Namun, konfigurasi ini justru mengakibatkan penghapusan semua file:
<LifecycleConfiguration>
<Rule>
<ID>rule1</ID>
<Prefix>dir/</Prefix>
<Filter>
<Not><Prefix>dir/p1/</Prefix></Not>
</Filter>
<Status>Enabled</Status>
<Expiration><Days>30</Days></Expiration>
</Rule>
<Rule>
<ID>rule2</ID>
<Prefix>dir/</Prefix>
<Filter>
<Not><Prefix>dir/p2/</Prefix></Not>
</Filter>
<Status>Enabled</Status>
<Expiration><Days>30</Days></Expiration>
</Rule>
</LifecycleConfiguration>
rule2 cocok dengan objek dalam dir/p1/, yang hanya mengecualikan dir/p2/. rule1 cocok dengan objek dalam dir/p2/, yang hanya mengecualikan dir/p1/. Akibatnya, semua file di bawah dir/ dihapus. Untuk memperbaikinya, konfigurasikan beberapa elemen Not dalam satu aturan. Perlu diperhatikan bahwa Anda mungkin perlu mengajukan permohonan agar fitur ini diaktifkan. Berikut contohnya:
<LifecycleConfiguration>
<Rule>
<ID>rule1</ID>
<Prefix>dir/</Prefix>
<Filter>
<Not><Prefix>dir/p1/</Prefix></Not>
<Not><Prefix>dir/p2/</Prefix></Not>
</Filter>
<Status>Enabled</Status>
<Expiration><Days>30</Days></Expiration>
</Rule>
</LifecycleConfiguration>
Berikut contoh konfigurasinya:
-
Aturan
rule1menghapus objek dengan awalandir1/30 hari setelah tanggal modifikasi terakhirnya. -
Aturan
rule2dikonfigurasi untuk mengubah kelas penyimpanan objek dengan awalandir1/menjadi kelas penyimpananInfrequent Access (IA)20 hari setelah tanggal modifikasi terakhirnya, serta mengecualikan objek di bawahdir1/dir2/. Namun, aturan ini tidak aktif karena statusnyaDisabled.
<LifecycleConfiguration>
<Rule>
<ID>rule1</ID>
<Prefix>dir1/</Prefix>
<Status>Enabled</Status>
<Expiration>
<Days>30</Days>
</Expiration>
</Rule>
<Rule>
<ID>rule2</ID>
<Prefix>dir1/</Prefix>
<Status>Disabled</Status>
<Filter>
<Not>
<Prefix>dir1/dir2/</Prefix>
</Not>
</Filter>
<Transition>
<Days>20</Days>
<StorageClass>IA</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
Elemen Not hanya berlaku untuk rule2. Objek dengan awalan dir1/ tetap tunduk pada rule1, yang akan menghapusnya 30 hari setelah tanggal modifikasi terakhirnya.
Untuk informasi selengkapnya, lihat Aturan berdasarkan tanggal modifikasi terakhir.
Elemen waktu
-
Berdasarkan tanggal tertentu
Gunakan elemen anak
<CreatedBeforeDate>untuk menentukan tanggal tetap. AksiExpirationatauTransitionditerapkan pada objek yang tanggal modifikasi terakhirnya sebelum tanggal tersebut. -
Berdasarkan jumlah hari
Gunakan elemen anak
<Days>untuk menentukan jumlah hari relatif. AksiExpirationatauTransitionditerapkan pada objek N hari setelah tanggal modifikasi terakhirnya.
Elemen operasi
Elemen operasi dalam aturan lifecycle menginstruksikan OSS untuk melakukan aksi tertentu pada objek. Efek dari aksi ini bergantung pada status versioning bucket. Bagian-bagian berikut merangkum perilaku aksi aturan lifecycle berdasarkan status versioning bucket.
-
Bucket dengan versioning dinonaktifkan
Aksi
Deskripsi
Transition
Mengubah kelas penyimpanan objek ke kelas tertentu setelah jumlah hari tertentu atau pada tanggal tertentu. Untuk informasi lebih lanjut tentang kelas penyimpanan yang didukung aturan lifecycle untuk transisi, lihat Mengonversi kelas penyimpanan objek secara otomatis menggunakan aturan lifecycle.
Expiration
Menghapus permanen objek yang sesuai setelah jumlah hari tertentu atau pada tanggal tertentu.
-
Bucket dengan versioning diaktifkan
Berikut ini menjelaskan elemen terkait lifecycle untuk objek dalam bucket yang dikendalikan versi (bucket dengan versioning diaktifkan atau ditangguhkan):
-
Aksi expiration dan transition untuk versi saat ini
Aksi
Deskripsi
Expiration
Perilaku expiration bergantung pada apakah versi saat ini merupakan penanda hapus:
-
Jika versi saat ini bukan penanda hapus:
-
Jika versioning diaktifkan, OSS menyisipkan penanda hapus dengan ID versi unik sebagai versi saat ini. Versi saat ini asli menjadi versi noncurrent.
-
Jika versioning ditangguhkan, OSS menyisipkan penanda hapus dengan ID versi null sebagai versi saat ini. OSS menimpa versi yang ada dengan ID versi null untuk memastikan objek hanya memiliki satu versi dengan ID versi null.
-
-
Jika versi saat ini adalah penanda hapus:
-
Jika objek memiliki satu atau lebih versi noncurrent, OSS tidak melakukan apa pun saat aksi Expiration dipicu.
-
Jika itu satu-satunya versi objek, OSS secara otomatis menghapus penanda hapus jika aturan
Expirationmencakup elemenExpiredObjectDeleteMarkeryang diatur ke true, atau jika aturan tersebut diatur untuk menghapus versi saat ini.Penting-
Saat Anda mengonfigurasi aturan lifecycle untuk menghapus versi saat ini objek atau melakukan operasi penghapusan yang tidak spesifik versi, aksi tersebut mengubah versi saat ini menjadi versi noncurrent. Saat Anda mengonfigurasi aturan lifecycle untuk menghapus semua versi noncurrent objek atau melakukan operasi penghapusan spesifik versi, aksi tersebut menghapus permanen semua versi noncurrent. Jika hanya penanda hapus yang tersisa sebagai versi saat ini, hal ini disebut expired delete marker.
-
Elemen anak
ExpiredObjectDeleteMarkertidak dapat dikonfigurasi bersamaan dengan aturan berbasis tag.
-
-
Transition
Mengubah kelas penyimpanan versi saat ini objek ke kelas tertentu ketika tanggal atau periode waktu tertentu dalam siklus hidup objek tercapai.
-
-
Aksi expiration dan transition untuk versi noncurrent
Aksi
Deskripsi
Elemen terkait
NoncurrentVersionExpiration
Mengakhiri masa berlaku versi noncurrent objek.
Elemen anak
<NoncurrentDays>menentukan jumlah hari untuk menyimpan versi noncurrent sebelum OSS menghapusnya secara permanen. Periode dimulai sejak versi tersebut menjadi noncurrent.CatatanSebagai contoh, suatu versi menjadi noncurrent pada 1 Mei 2019 akibat operasi PutObject yang menimpa. Jika
<NoncurrentDays>dalam elemenNoncurrentVersionExpirationdiatur ke 3, OSS menghapus permanen versi noncurrent ini pada 4 Mei 2019. Karena kontinuitas versi, setiap operasi upload menjadikan versi saat ini sebagai versi noncurrent pertama, dan versi yang baru ditambahkan menjadi penerusnya. OSS menentukan kapan suatu versi menjadi noncurrent dengan memeriksa waktu pembuatan penerusnya.NoncurrentVersionTransition
Mengubah kelas penyimpanan versi noncurrent objek.
-
Elemen anak
<NoncurrentDays>menentukan jumlah hari setelah suatu versi menjadi noncurrent sebelum kelas penyimpanannya diubah. -
Elemen anak
<StorageClass>menentukan kelas penyimpanan target untuk objek tersebut.
-
-