全部产品
Search
文档中心

Object Storage Service:Kelola daftar kontrol akses sebuah bucket (Python SDK V2)

更新时间:Nov 09, 2025

Bucket adalah wadah untuk objek dalam OSS. Topik ini menjelaskan cara menetapkan dan mengambil daftar kontrol akses (ACL) dari sebuah bucket menggunakan Python SDK V2.

Catatan

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

  • Anda harus memiliki izin oss:PutBucketAcl untuk menetapkan ACL sebuah bucket dan izin oss:GetBucketAcl untuk mengambil ACL sebuah bucket. Untuk informasi lebih lanjut, lihat Berikan Kebijakan Kustom kepada Pengguna RAM.

Definisi metode

Tetapkan daftar kontrol akses bucket

put_bucket_acl(request: PutBucketAclRequest, **kwargs) → PutBucketAclResult

Dapatkan daftar kontrol akses bucket

get_bucket_acl(request: GetBucketAclRequest, **kwargs) → GetBucketAclResult

Daftar parameter permintaan

Nama parameter

Tipe

Deskripsi

request

PutBucketAclRequest

Tetapkan parameter permintaan. Untuk informasi lebih lanjut, lihat PutBucketAclRequest

GetBucketAclRequest

Tetapkan parameter permintaan. Untuk informasi lebih lanjut, lihat GetBucketAclRequest

Daftar nilai balik

Tipe

Deskripsi

GetBucketAclResult

Nilai balik. Untuk informasi lebih lanjut, lihat GetBucketAclResult

PutBucketAclResult

Nilai balik. Untuk informasi lebih lanjut, lihat PutBucketAclResult

Untuk definisi lengkap metode untuk menetapkan ACL bucket, lihat put_bucket_acl.

Untuk definisi lengkap metode untuk mengambil ACL bucket, lihat get_bucket_acl.

Jenis daftar kontrol akses bucket

ACL bucket mencakup tiga jenis berikut:

Daftar kontrol akses

Deskripsi

Nilai izin

Pribadi

Hanya pemilik bucket dan pengguna yang berwenang yang dapat melakukan operasi baca dan tulis pada objek di dalam bucket. Pengguna lain tidak dapat mengakses objek di dalam bucket.

private

Baca publik

Hanya pemilik bucket dan pengguna yang berwenang yang dapat melakukan operasi baca dan tulis pada objek di dalam bucket. Pengguna lain, termasuk pengguna anonim, hanya dapat membaca objek di dalam bucket. Berhati-hatilah saat menggunakan izin ini.

public-read

Baca-tulis publik

Semua pengguna dapat melakukan operasi baca dan tulis pada objek di dalam bucket. Berhati-hatilah saat menggunakan izin ini.

public-read-write

Kode contoh

Anda dapat menggunakan kode di bawah ini untuk menetapkan dan mengambil ACL bucket.

import argparse
import alibabacloud_oss_v2 as oss

# Buat parser argumen baris perintah dan tambahkan informasi deskripsi
parser = argparse.ArgumentParser(description="contoh put bucket acl")
# Tambahkan argumen baris perintah yang diperlukan: region, bucket, dan acl
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tambahkan argumen baris perintah opsional: endpoint, digunakan untuk menentukan nama domain agar layanan lain dapat mengakses OSS
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')
# Tambahkan argumen baris perintah yang diperlukan: acl, digunakan untuk menentukan izin akses ACL untuk bucket, seperti private, public-read, public-read-write
parser.add_argument('--acl', help='Tentukan izin akses ACL untuk bucket.', required=True)

def main():
    # Parsing argumen baris perintah
    args = parser.parse_args()

    # Muat informasi otentikasi dari variabel lingkungan
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Gunakan konfigurasi default SDK
    cfg = oss.config.load_default()
    # Tetapkan penyedia kredensial
    cfg.credentials_provider = credentials_provider
    # Tetapkan wilayah
    cfg.region = args.region
    # Jika endpoint disediakan, perbarui endpoint dalam konfigurasi
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Buat klien OSS
    client = oss.Client(cfg)

    # Panggil metode put_bucket_acl untuk menetapkan ACL bucket
    result = client.put_bucket_acl(oss.PutBucketAclRequest(
        bucket=args.bucket,
        acl=args.acl,
    ))

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

    # Dapatkan ACL bucket yang ditentukan
    result = client.get_bucket_acl(oss.GetBucketAclRequest(
        bucket=args.bucket,
    ))

    # Cetak kode status, ID permintaan, dan informasi ACL dalam hasil
    print(f'kode status: {result.status_code},'
          f' ID permintaan: {result.request_id},'
          f' acl: {result.acl},'
    )

if __name__ == "__main__":
    main()

Referensi

  • Untuk kode contoh lengkap untuk menetapkan ACL bucket, lihat put_bucket_acl.py.

  • Untuk kode contoh lengkap yang menunjukkan cara mengambil ACL sebuah bucket, lihat get_bucket_acl.py.