Aturan lifecycle dapat diterapkan pada objek berdasarkan awalan atau tag objek. Anda juga dapat menentukan awalan dan tag secara bersamaan sebagai kondisi agar suatu aturan berlaku.
Untuk kondisi berbasis tag, kunci dan nilai harus sesuai. Jika suatu aturan mencakup awalan dan beberapa tag objek, aturan tersebut hanya berlaku untuk objek yang sesuai dengan awalan serta semua tag yang ditentukan.
Catatan penggunaan
Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Regions and endpoints.
Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Initialization.
Tambahkan aturan pencocokan berbasis tag ke aturan lifecycle
Kode berikut menunjukkan cara menambahkan aturan pencocokan berbasis tag ke aturan lifecycle.
# -*- coding: utf-8 -*-
import oss2
import datetime
from oss2.models import (LifecycleExpiration, LifecycleRule,
BucketLifecycle, AbortMultipartUpload,
TaggingRule, Tagging, StorageTransition)
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan Endpoint untuk wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan informasi wilayah yang sesuai dengan Endpoint, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"
# Ganti examplebucket dengan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Konfigurasikan aturan untuk menghapus objek 3 hari setelah objek terakhir dimodifikasi.
# Tetapkan nama aturan dan awalan untuk mencocokkan objek.
rule1 = LifecycleRule('rule1', 'tests/',
# Aktifkan aturan kedaluwarsa.
status=LifecycleRule.ENABLED,
# Tetapkan aturan kedaluwarsa agar objek kedaluwarsa 3 hari setelah terakhir dimodifikasi.
expiration=LifecycleExpiration(days=3))
# Konfigurasikan aturan untuk menghapus objek yang dibuat sebelum tanggal tertentu.
# Tetapkan nama aturan dan awalan untuk mencocokkan objek.
rule2 = LifecycleRule('rule2', 'logging-',
# Nonaktifkan aturan kedaluwarsa.
status=LifecycleRule.DISABLED,
# Tetapkan aturan kedaluwarsa agar objek kedaluwarsa jika dibuat sebelum tanggal tertentu.
expiration=LifecycleExpiration(created_before_date=datetime.date(2018, 12, 12)))
# Konfigurasikan aturan untuk menghapus bagian (part) 3 hari setelah dibuat.
rule3 = LifecycleRule('rule3', 'tests1/',
status=LifecycleRule.ENABLED,
abort_multipart_upload=AbortMultipartUpload(days=3))
# Konfigurasikan aturan untuk menghapus bagian (part) yang dibuat sebelum tanggal tertentu.
rule4 = LifecycleRule('rule4', 'logging1-',
status=LifecycleRule.DISABLED,
abort_multipart_upload = AbortMultipartUpload(created_before_date=datetime.date(2018, 12, 12)))
# Tetapkan tag untuk mencocokkan objek.
tagging_rule = TaggingRule()
tagging_rule.add('key1', 'value1')
tagging_rule.add('key2', 'value2')
tagging = Tagging(tagging_rule)
# Konfigurasikan aturan transisi untuk mengonversi objek ke Archive Storage 365 hari setelah objek terakhir dimodifikasi.
# Pada rule5, tag ditentukan untuk mencocokkan objek. Aturan ini hanya berlaku untuk objek yang memiliki kedua tag key1=value1 dan key2=value2.
rule5 = LifecycleRule('rule5', 'logging2-',
status=LifecycleRule.ENABLED,
storage_transitions=[StorageTransition(days=365, storage_class=oss2.BUCKET_STORAGE_CLASS_ARCHIVE)],
tagging = tagging)
lifecycle = BucketLifecycle([rule1, rule2, rule3, rule4, rule5])
bucket.put_bucket_lifecycle(lifecycle)Lihat informasi tag dalam aturan lifecycle
Kode berikut menunjukkan cara melihat informasi tag dalam aturan lifecycle.
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan Endpoint untuk wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan informasi wilayah yang sesuai dengan Endpoint, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"
# Ganti examplebucket dengan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Lihat aturan lifecycle.
lifecycle = bucket.get_bucket_lifecycle()
for rule in lifecycle.rules:
# Lihat aturan untuk menghapus bagian (part).
if rule.abort_multipart_upload is not None:
print('id={0}, prefix={1}, tagging={2}, status={3}, days={4}, created_before_date={5}'
.format(rule.id, rule.prefix, rule.tagging, rule.status,
rule.abort_multipart_upload.days,
rule.abort_multipart_upload.created_before_date))
# Lihat aturan untuk menghapus objek.
if rule.expiration is not None:
print('id={0}, prefix={1}, tagging={2}, status={3}, days={4}, created_before_date={5}'
.format(rule.id, rule.prefix, rule.tagging, rule.status,
rule.expiration.days,
rule.expiration.created_before_date))
# Lihat aturan transisi.
if len(rule.storage_transitions) > 0:
storage_trans_info = ''
for storage_rule in rule.storage_transitions:
storage_trans_info += 'days={0}, created_before_date={1}, storage_class={2} **** '.format(
storage_rule.days, storage_rule.created_before_date, storage_rule.storage_class)
print('id={0}, prefix={1}, tagging={2}, status={3},, StorageTransition={4}'
.format(rule.id, rule.prefix, rule.tagging, rule.status, storage_trans_info))Referensi
Untuk kode contoh lengkap mengenai aturan lifecycle, lihat contoh di GitHub.
Untuk informasi selengkapnya mengenai operasi API untuk menyetel aturan lifecycle, lihat PutBucketLifecycle.
Untuk informasi selengkapnya mengenai operasi API untuk melihat aturan lifecycle, lihat GetBucketLifecycle.