Bucket adalah wadah untuk objek yang disimpan di Object Storage Service (OSS). Semua objek disimpan dalam bucket. Topik ini menjelaskan cara mengatur dan mengambil daftar kontrol akses (ACL) bucket.
Catatan penggunaan
Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lainnya yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir.
Kredensial akses pada topik ini diperoleh dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan kredensial akses menggunakan OSS SDK untuk Python 1.0.
Instans OSSClient pada topik ini dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Inisialisasi.
Untuk mengatur ACL bucket, Anda harus memiliki izin
oss:PutBucketAcl. Untuk mengambil ACL bucket, Anda harus memiliki izinoss:GetBucketAcl. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.
Mengatur ACL untuk bucket
Sebuah bucket memiliki tiga jenis ACL berikut:
ACL | Deskripsi | Metode |
private | Hanya pemilik bucket dan pengguna yang berwenang yang memiliki izin baca dan tulis pada objek di dalam bucket tersebut. Pengguna lain tidak dapat mengakses objek tersebut. | oss2.BUCKET_ACL_PRIVATE |
public-read | Pemilik bucket dan pengguna yang berwenang memiliki izin baca dan tulis pada objek di dalam bucket tersebut. Pengguna lain hanya memiliki izin baca pada objek tersebut. Gunakan izin ini dengan hati-hati. | oss2.BUCKET_ACL_PUBLIC_READ |
public-read-write | Semua pengguna memiliki izin baca dan tulis pada objek di dalam bucket tersebut. Gunakan izin ini dengan hati-hati. | oss2.BUCKET_ACL_PUBLIC_READ_WRITE |
Kode contoh berikut menunjukkan cara mengonfigurasi ACL bucket:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan Endpoint untuk wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Perhatikan bahwa parameter ini wajib untuk tanda tangan V4.
region = "cn-hangzhou"
# Ganti yourBucketName dengan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# Atur ACL bucket menjadi private.
bucket.put_bucket_acl(oss2.BUCKET_ACL_PRIVATE)Mendapatkan izin akses bucket
Kode berikut memberikan contoh cara mengambil ACL bucket:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan Endpoint untuk wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan wilayah tempat bucket berada, seperti cn-hangzhou. Perhatikan bahwa 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 ACL bucket.
print(bucket.get_bucket_acl().acl)Referensi
Untuk kode contoh lengkap tentang cara mengelola ACL bucket, lihat GitHub.
Untuk informasi selengkapnya mengenai operasi API untuk mengatur ACL bucket, lihat PutBucketAcl.
Untuk informasi selengkapnya mengenai operasi API untuk mengambil ACL bucket, lihat GetBucketAcl.