全部产品
Search
文档中心

Object Storage Service:Kelola ACL bucket (C# SDK V2)

更新时间:Nov 09, 2025

Bucket adalah Kontainer yang digunakan untuk menyimpan objek. Topik ini menjelaskan cara menggunakan C# SDK V2 untuk menetapkan dan mendapatkan daftar kontrol akses (ACL) bucket.

Peringatan

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

  • Untuk menetapkan ACL bucket, Anda memerlukan izin oss:PutBucketAcl. Untuk mendapatkan ACL bucket, Anda memerlukan izin oss:GetBucketAcl. Untuk informasi lebih lanjut, lihat Berikan Izin Khusus kepada Pengguna RAM.

Jenis ACL bucket

ACL bucket mencakup tiga jenis berikut:

ACL

Deskripsi

Nilai izin

private

Pemilik bucket dan pengguna yang diberi otorisasi memiliki izin baca dan tulis pada objek di bucket. Pengguna lain tidak dapat melakukan operasi pada objek tersebut.

private

public-read

Pemilik bucket dan pengguna yang diberi otorisasi memiliki izin baca dan tulis pada objek di bucket. Pengguna lain hanya memiliki izin baca. Gunakan izin ini dengan hati-hati.

public-read

public-read-write

Semua pengguna memiliki izin baca dan tulis pada objek di bucket. Gunakan izin ini dengan hati-hati.

public-read-write

Kode contoh

Berikut adalah kode contoh yang menunjukkan cara menetapkan dan mendapatkan ACL bucket.

using OSS = AlibabaCloud.OSS.V2;  // Buat alias untuk Alibaba Cloud OSS SDK untuk menyederhanakan penggunaan selanjutnya.

var region = "cn-hangzhou";  // Diperlukan. Wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Region ke cn-hangzhou.
var endpoint = null as string;  // Opsional. Titik akhir yang digunakan untuk mengakses OSS. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
var bucket = "nama bucket Anda";  // Diperlukan. Nama bucket.
var acl = "ACL bucket Anda";  // Diperlukan. ACL bucket tujuan. Nilai valid: private, public-read, dan public-read-write.

// Muat konfigurasi default dari OSS SDK. Konfigurasi secara otomatis membaca informasi kredensial (seperti AccessKey) dari Variabel lingkungan.
var cfg = OSS.Configuration.LoadDefault();
// Secara eksplisit atur penggunaan Variabel lingkungan untuk mendapatkan kredensial untuk verifikasi identitas (format: OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET).
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// Atur wilayah bucket dalam konfigurasi.
cfg.Region = region;   
// Jika titik akhir ditentukan, timpa titik akhir default. 
if(endpoint != null) 
{
    cfg.Endpoint = endpoint;
} 

// Buat instans Klien OSS menggunakan informasi konfigurasi.
using var client = new OSS.Client(cfg);

// Panggil metode PutBucketAclAsync untuk menetapkan ACL bucket tujuan.
var result1 = await client.PutBucketAclAsync(new OSS.Models.PutBucketAclRequest()
{
    Bucket = bucket,
    Acl = acl
});

// Panggil metode GetBucketAclAsync untuk mendapatkan ACL bucket tujuan.
var result2 = await client.GetBucketAclAsync(new OSS.Models.GetBucketAclRequest()
{
    Bucket = bucket
});

// Cetak informasi hasil.
Console.WriteLine("PutBucketAcl selesai");  // Pesan yang menunjukkan bahwa operasi telah selesai.
Console.WriteLine($"Kode Status: {result.StatusCode}");  // Kode status HTTP.
Console.WriteLine($"ID Permintaan: {result.RequestId}");  // ID permintaan, yang digunakan untuk pemecahan masalah di Alibaba Cloud.
Console.WriteLine("Header Respons:");  // Informasi header respons.
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value));  // Telusuri dan cetak semua header respons.
Console.WriteLine($"ACL: {result2.AccessControlPolicy!.AccessControlList!.Grant}");  // Cetak ACL bucket tujuan.

Referensi

  • Untuk kode contoh lengkap untuk menetapkan ACL bucket, lihat PutBucketAcl.cs.

  • Untuk kode contoh lengkap untuk mendapatkan ACL bucket, lihat GetBucketAcl.cs.