Anda dapat mengonfigurasi kebijakan retensi berbasis waktu untuk bucket Object Storage Service (OSS). Periode retensi kebijakan berkisar antara 1 hari hingga 70 tahun. Topik ini menjelaskan cara membuat, menanyakan, mengunci, membatalkan, serta memperpanjang periode retensi.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID wilayah
cn-hangzhoudari Wilayah (Hangzhou) Tiongkok. Secara default, titik akhir publik digunakan untuk mengakses sumber daya di bucket. Jika Anda ingin mengakses sumber daya di bucket dengan menggunakan layanan Alibaba Cloud lainnya di wilayah yang sama dengan lokasi bucket, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir OSS, lihat Wilayah dan Titik Akhir.
Contoh kode
Buat kebijakan retensi
Bucket tidak dapat memiliki konfigurasi versi dan kebijakan retensi secara bersamaan. Pastikan bahwa versi tidak diaktifkan untuk bucket sebelum membuat kebijakan retensi.
Contoh kode berikut menunjukkan cara membuat kebijakan retensi:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara menggunakan fitur Write Once Read Many (WORM) untuk membuat kebijakan retensi untuk bucket.
parser = argparse.ArgumentParser(description="contoh inisiasi worm bucket")
# Tentukan parameter --region, yang menentukan wilayah tempat bucket berada. Parameter baris perintah ini wajib.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tentukan parameter --bucket, yang menentukan nama bucket. Parameter baris perintah ini wajib.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tentukan parameter --endpoint, yang menentukan titik akhir wilayah tempat bucket berada. Parameter baris perintah ini opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
# Tentukan parameter --retention_period_in_days, yang menentukan jumlah hari objek dapat disimpan. Parameter baris perintah ini wajib.
parser.add_argument('--retention_period_in_days', help='Jumlah hari objek dapat disimpan.', required=True)
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang ditentukan oleh pengguna.
args = parser.parse_args()
# Muat informasi autentikasi yang diperlukan untuk mengakses OSS dari variabel lingkungan.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
# Jika titik akhir kustom disediakan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk membuat kebijakan retensi untuk bucket.
result = client.initiate_bucket_worm(oss.InitiateBucketWormRequest(
bucket=args.bucket, # Nama bucket.
initiate_worm_configuration=oss.InitiateWormConfiguration(
retention_period_in_days=int(args.retention_period_in_days), # Jumlah hari objek dapat disimpan. Tetapkan nilainya sebagai integer.
),
))
# Tampilkan kode status HTTP operasi, ID permintaan, dan ID kebijakan retensi untuk memeriksa status permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' ID worm: {result.worm_id}'
)
# Panggil fungsi utama untuk memulai logika pemrosesan ketika skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Alur program kontrol dimulai di sini.Batalkan kebijakan retensi yang tidak terkunci
Contoh kode berikut menunjukkan cara membatalkan kebijakan retensi yang tidak terkunci:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara menggunakan fitur WORM untuk membatalkan kebijakan retensi yang tidak terkunci dari bucket.
parser = argparse.ArgumentParser(description="contoh abort bucket worm")
# Tentukan parameter --region, yang menentukan wilayah tempat bucket berada. Parameter baris perintah ini wajib.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tentukan parameter --bucket, yang menentukan nama bucket. Parameter baris perintah ini wajib.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tentukan parameter --endpoint, yang menentukan titik akhir wilayah tempat bucket berada. Parameter baris perintah ini opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang ditentukan oleh pengguna.
args = parser.parse_args()
# Muat informasi autentikasi yang diperlukan untuk mengakses OSS dari variabel lingkungan.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
# Jika titik akhir kustom disediakan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk membatalkan kebijakan retensi yang tidak terkunci dari bucket.
result = client.abort_bucket_worm(oss.AbortBucketWormRequest(
bucket=args.bucket, # Nama bucket.
))
# Tampilkan kode status HTTP hasil operasi dan ID permintaan untuk memeriksa status permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id}'
)
# Panggil fungsi utama untuk memulai logika pemrosesan ketika skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Alur program kontrol dimulai di sini.Kunci kebijakan retensi
Contoh kode berikut menunjukkan cara mengunci kebijakan retensi:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara menggunakan fitur WORM untuk mengunci kebijakan retensi dari bucket.
parser = argparse.ArgumentParser(description="contoh complete bucket worm")
# Tentukan parameter --region, yang menentukan wilayah tempat bucket berada. Parameter baris perintah ini wajib.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tentukan parameter --bucket, yang menentukan nama bucket. Parameter baris perintah ini wajib.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tentukan parameter --endpoint, yang menentukan titik akhir wilayah tempat bucket berada. Parameter baris perintah ini opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
# Tentukan parameter --worm_id, yang menentukan ID kebijakan retensi yang ingin Anda kunci. Parameter baris perintah ini wajib.
parser.add_argument('--worm_id', help='ID kebijakan retensi.', required=True)
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang ditentukan oleh pengguna.
args = parser.parse_args()
# Muat informasi autentikasi yang diperlukan untuk mengakses OSS dari variabel lingkungan.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
# Jika titik akhir kustom disediakan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk mengunci kebijakan retensi dari bucket.
result = client.complete_bucket_worm(oss.CompleteBucketWormRequest(
bucket=args.bucket, # Nama bucket.
worm_id=args.worm_id, # ID kebijakan retensi yang ingin Anda kunci.
))
# Tampilkan kode status HTTP hasil operasi dan ID permintaan untuk memeriksa status permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id}'
)
# Panggil fungsi utama untuk memulai logika pemrosesan ketika skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Alur program kontrol dimulai di sini.Tanyakan kebijakan retensi
Contoh kode berikut menunjukkan cara menanyakan kebijakan retensi:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara menggunakan fitur WORM untuk menanyakan kebijakan retensi dari bucket.
parser = argparse.ArgumentParser(description="contoh get bucket worm")
# Tentukan parameter --region, yang menentukan wilayah tempat bucket berada. Parameter baris perintah ini wajib.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tentukan parameter --bucket, yang menentukan nama bucket. Parameter baris perintah ini wajib.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tentukan parameter --endpoint, yang menentukan titik akhir wilayah tempat bucket berada. Parameter baris perintah ini opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang ditentukan oleh pengguna.
args = parser.parse_args()
# Muat informasi autentikasi yang diperlukan untuk mengakses OSS dari variabel lingkungan.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
# Jika titik akhir kustom disediakan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk menanyakan kebijakan retensi dari bucket.
result = client.get_bucket_worm(oss.GetBucketWormRequest(
bucket=args.bucket, # Nama bucket.
))
# Tampilkan kode status HTTP hasil operasi, ID permintaan, dan konfigurasi kebijakan retensi.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id},'
f' ID worm: {result.worm_configuration.worm_id},' # ID kebijakan retensi.
f' status: {result.worm_configuration.state},' # Status fitur WORM.
f' periode retensi dalam hari: {result.worm_configuration.retention_period_in_days},' # Jumlah hari objek dapat disimpan.
f' tanggal pembuatan: {result.worm_configuration.creation_date},' # Tanggal pembuatan kebijakan retensi.
f' tanggal kedaluwarsa: {result.worm_configuration.expiration_date},' # Tanggal kedaluwarsa kebijakan retensi.
)
# Panggil fungsi utama untuk memulai logika pemrosesan ketika skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Alur program kontrol dimulai di sini.Perpanjang periode retensi kebijakan retensi
Contoh kode berikut menunjukkan cara memperpanjang periode retensi kebijakan retensi:
import argparse
import alibabacloud_oss_v2 as oss
# Buat parser parameter baris perintah dan jelaskan tujuan skrip. Contoh ini menjelaskan cara menggunakan fitur WORM untuk memperpanjang periode retensi kebijakan retensi.
parser = argparse.ArgumentParser(description="contoh extend bucket worm")
# Tentukan parameter --region, yang menentukan wilayah tempat bucket berada. Parameter baris perintah ini wajib.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tentukan parameter --bucket, yang menentukan nama bucket. Parameter baris perintah ini wajib.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tentukan parameter --endpoint, yang menentukan titik akhir wilayah tempat bucket berada. Parameter baris perintah ini opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
# Tentukan parameter --worm_id, yang menentukan ID kebijakan retensi yang ingin Anda perpanjang periode retensinya. Parameter baris perintah ini wajib.
parser.add_argument('--worm_id', help='ID kebijakan retensi.', required=True)
# Tentukan parameter --retention_period_in_days, yang menentukan jumlah hari objek dalam bucket dapat disimpan. Parameter baris perintah ini wajib.
parser.add_argument('--retention_period_in_days', help='Jumlah hari objek dapat disimpan.', required=True)
def main():
# Parsing parameter baris perintah untuk mendapatkan nilai yang ditentukan oleh pengguna.
args = parser.parse_args()
# Muat informasi autentikasi yang diperlukan untuk mengakses OSS dari variabel lingkungan.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Gunakan konfigurasi default SDK untuk membuat objek konfigurasi dan tentukan penyedia kredensial.
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = args.region
# Jika titik akhir kustom disediakan, ubah parameter titik akhir dalam objek konfigurasi.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Gunakan konfigurasi di atas untuk menginisialisasi instance OSSClient dan izinkan instance berinteraksi dengan OSS.
client = oss.Client(cfg)
# Kirim permintaan untuk memperpanjang kebijakan retensi dari bucket.
result = client.extend_bucket_worm(oss.ExtendBucketWormRequest(
bucket=args.bucket, # Nama bucket.
worm_id=args.worm_id, # ID kebijakan retensi.
extend_worm_configuration=oss.ExtendWormConfiguration(
retention_period_in_days=int(args.retention_period_in_days), # Jumlah hari objek dapat disimpan. Tetapkan nilainya sebagai integer.
),
))
# Tampilkan kode status HTTP hasil operasi dan ID permintaan untuk memeriksa status permintaan.
print(f'kode status: {result.status_code},'
f' ID permintaan: {result.request_id}'
)
# Panggil fungsi utama untuk memulai logika pemrosesan ketika skrip dijalankan langsung.
if __name__ == "__main__":
main() # Tentukan titik masuk dalam fungsi skrip. Alur program kontrol dimulai di sini.Referensi
Untuk informasi lebih lanjut tentang kesalahan umum dalam kebijakan retensi, lihat 27-WORM.