Pengendalian versi berlaku untuk semua objek dalam bucket dan memungkinkan Anda memulihkan objek ke versi sebelumnya jika tidak sengaja ditimpa atau dihapus.
Sebuah bucket memiliki tiga status pengendalian versi: unversioned (default), versioning enabled, dan versioning suspended. Untuk informasi selengkapnya mengenai status pengendalian versi, lihat Versioning.
Catatan penggunaan
Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lain yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Regions and endpoints.
Topik ini memperoleh kredensial akses dari variabel lingkungan. Untuk informasi selengkapnya mengenai cara mengonfigurasi kredensial akses, lihat Configure access credentials using OSS SDK for Python 1.0.
Topik ini membuat instans OSSClient menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Initialization.
Untuk mengatur status pengendalian versi bucket, Anda harus memiliki izin
oss:PutBucketVersioning. Untuk mengambil status pengendalian versi bucket, Anda harus memiliki izinoss:GetBucketVersioning. Untuk informasi selengkapnya, lihat Grant custom permissions to a RAM user.
Mengatur status pengendalian versi bucket
Kode berikut menunjukkan cara mengatur status pengendalian versi bucket menjadi Enabled atau Suspended.
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import BucketVersioningConfig
# Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel titik akhir ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Catatan: Parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"
# Ganti yourBucketName dengan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# Buat konfigurasi pengendalian versi bucket.
config = BucketVersioningConfig()
# Setel status ke Enabled atau Suspended.
config.status = oss2.BUCKET_VERSIONING_ENABLE
# Atur status pengendalian versi bucket.
result = bucket.put_bucket_versioning(config)
# Tampilkan kode respons HTTP.
print('http response code:', result.status)Mendapatkan status pengendalian versi bucket
Kode berikut menunjukkan cara mengambil status pengendalian versi bucket.
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel titik akhir ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Catatan: Parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"
# Ganti yourBucketName dengan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# Dapatkan status pengendalian versi bucket.
versioning_info = bucket.get_bucket_versioning()
# Tampilkan status pengendalian versi bucket. Statusnya adalah Enabled atau Suspended jika pengendalian versi pernah diaktifkan. Statusnya adalah None jika pengendalian versi belum pernah diaktifkan.
print('bucket versioning status:', versioning_info.status)Referensi
Untuk kode contoh lengkap mengenai pengelolaan pengendalian versi, lihat GitHub.
Untuk informasi selengkapnya mengenai operasi API yang digunakan untuk mengatur status pengendalian versi bucket, lihat PutBucketVersioning.
Untuk informasi selengkapnya mengenai operasi API yang digunakan untuk mengambil status pengendalian versi bucket, lihat GetBucketVersioning.