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-hangzhouuntuk 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:PutBucketAcluntuk menetapkan ACL sebuah bucket dan izinoss:GetBucketAcluntuk 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.