全部产品
Search
文档中心

Object Storage Service:Mengelola Pengendalian versi (Python SDK V1)

更新时间:Nov 29, 2025

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 izin oss: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.