全部产品
Search
文档中心

Object Storage Service:Kelola pengendalian versi menggunakan OSS SDK untuk Python 2.0

更新时间:Oct 21, 2025

Status pengendalian versi bucket berlaku untuk semua objek dalam bucket tersebut. Jika Anda mengaktifkan pengendalian versi untuk bucket, Anda dapat memulihkan versi sebelumnya dari sebuah objek di bucket ketika Anda secara tidak sengaja menimpa atau menghapus objek tersebut.

Catatan penggunaan

  • Kode contoh dalam topik ini menggunakan ID wilayah cn-hangzhou untuk Wilayah Hangzhou, Tiongkok. Secara default, titik akhir publik digunakan untuk mengakses sumber daya dalam bucket. Jika Anda ingin mengakses sumber daya dalam bucket dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket tersebut, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir.

  • Untuk menetapkan status pengendalian versi sebuah bucket, Anda harus memiliki izin oss:PutBucketVersioning. Untuk mendapatkan status pengendalian versi sebuah bucket, Anda harus memiliki izin oss:GetBucketVersioning. Untuk informasi lebih lanjut, lihat Berikan Kebijakan Akses Kustom kepada Pengguna RAM.

Kode contoh

Konfigurasikan status pengendalian versi sebuah bucket

Berikut adalah kode contoh yang menunjukkan cara mengaktifkan pengendalian versi untuk sebuah bucket:

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser argumen baris perintah dan jelaskan tujuan skrip: aktifkan pengendalian versi untuk sebuah bucket.
parser = argparse.ArgumentParser(description="put bucket versioning sample")

# Tentukan argumen baris perintah, termasuk wilayah dan nama bucket yang diperlukan, serta titik akhir opsional.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

def main():
    # Parsing argumen baris perintah untuk mendapatkan nilai input pengguna.
    args = parser.parse_args()

    # Muat informasi kredensial akses dari variabel lingkungan untuk verifikasi identitas.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Buat objek konfigurasi menggunakan konfigurasi SDK default dan tetapkan penyedia otentikasi.
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider

    # Tetapkan properti wilayah objek konfigurasi berdasarkan argumen baris perintah yang diberikan pengguna.
    cfg.region = args.region

    # Jika titik akhir kustom diberikan, perbarui properti titik akhir dalam objek konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Gunakan konfigurasi di atas untuk menginisialisasi klien OSS untuk berinteraksi dengan OSS.
    client = oss.Client(cfg)

    # Kirim permintaan untuk mengaktifkan pengendalian versi untuk bucket yang ditentukan.
    result = client.put_bucket_versioning(oss.PutBucketVersioningRequest(
        bucket=args.bucket,  # Nama bucket.
        versioning_configuration=oss.VersioningConfiguration(
            status='Enabled'  # Aktifkan pengendalian versi.
        )
    ))

    # Cetak kode status dan ID permintaan hasil operasi untuk mengonfirmasi status permintaan.
    print(f'kode status: {result.status_code},'
          f' ID permintaan: {result.request_id},'
          )

# Saat skrip ini dieksekusi langsung, panggil fungsi utama untuk mulai memproses logika.
if __name__ == "__main__":
    main()  # Titik masuk skrip. Alur program dimulai dari sini.

Kueri status pengendalian versi sebuah bucket

Berikut adalah kode contoh yang menunjukkan cara mengkueri status pengendalian versi sebuah bucket:

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser argumen baris perintah dan jelaskan tujuan skrip: dapatkan status pengendalian versi sebuah bucket.
parser = argparse.ArgumentParser(description="get bucket versioning sample")

# Tentukan argumen baris perintah, termasuk wilayah dan nama bucket yang diperlukan, serta titik akhir opsional.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

def main():
    # Parsing argumen baris perintah untuk mendapatkan nilai input pengguna.
    args = parser.parse_args()

    # Muat informasi kredensial akses dari variabel lingkungan untuk verifikasi identitas.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Buat objek konfigurasi menggunakan konfigurasi SDK default dan tetapkan penyedia otentikasi.
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider

    # Tetapkan properti wilayah objek konfigurasi berdasarkan argumen baris perintah yang diberikan pengguna.
    cfg.region = args.region

    # Jika titik akhir kustom diberikan, perbarui properti titik akhir dalam objek konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Gunakan konfigurasi di atas untuk menginisialisasi klien OSS untuk berinteraksi dengan OSS.
    client = oss.Client(cfg)

    # Kirim permintaan untuk mendapatkan status pengendalian versi bucket yang ditentukan.
    result = client.get_bucket_versioning(oss.GetBucketVersioningRequest(
        bucket=args.bucket,  # Nama bucket.
    ))

    # Cetak kode status, ID permintaan, dan status pengendalian versi hasil operasi untuk mengonfirmasi status permintaan.
    print(f'kode status: {result.status_code},'
          f' ID permintaan: {result.request_id},'
          f' status versi: {result.version_status},'  # Status pengendalian versi.
          )

# Saat skrip ini dieksekusi langsung, panggil fungsi utama untuk mulai memproses logika.
if __name__ == "__main__":
    main()  # Titik masuk skrip. Alur program dimulai dari sini.

Referensi

  • Untuk kode contoh lengkap untuk menetapkan status pengendalian versi sebuah bucket, lihat put_bucket_version.py.

  • Untuk kode contoh lengkap untuk mendapatkan status pengendalian versi sebuah bucket, lihat get_bucket_cors.py.