全部产品
Search
文档中心

Object Storage Service:Mengelola ACL bucket (C# SDK V1)

更新时间:Nov 29, 2025

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.

  • Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient dengan 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 izin oss:GetBucketAcl. Untuk informasi selengkapnya, lihat Melampirkan kebijakan kustom ke RAM user.

Mengatur ACL bucket

Bucket memiliki tiga jenis ACL berikut:

Nilai

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 di dalam bucket tersebut.

CannedAccessControlList.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 di dalam bucket tersebut. Gunakan izin ini dengan hati-hati.

CannedAccessControlList.PublicRead

Public-read-write

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

CannedAccessControlList.PublicReadWrite

Kode berikut menunjukkan cara mengatur ACL bucket:

using System;
using Aliyun.OSS;
using Aliyun.OSS.Common;

namespace Samples
{
    public class Program
    {
        public static void Main(string[] args)
        {
            // Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
            var endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
            // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
            var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
            var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
            // Tentukan nama bucket. Contoh: examplebucket.
            var bucketName = "examplebucket";
            // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
            const string region = "cn-hangzhou";
            // Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
            var conf = new ClientConfiguration();
            // Gunakan Signature V4.
            conf.SignatureVersion = SignatureVersion.V4;

            // Buat instans OssClient.
            var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
            client.SetRegion(region);
            
            try
            {
                // Atur ACL bucket menjadi public-read.
                client.SetBucketAcl(bucketName, CannedAccessControlList.PublicRead);
                Console.WriteLine("Set bucket ACL succeeded");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Set bucket ACL failed. {0}", ex.Message);
            }
        }
    }
}

Mendapatkan izin akses bucket

Kode berikut memberikan contoh cara mengambil ACL bucket:

using System;
using Aliyun.OSS;
using Aliyun.OSS.Common;

namespace Samples
{
    public class Program
    {
        public static void Main(string[] args)
        {
            // Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com.
            var endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
            // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
            var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
            var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
            // Tentukan nama bucket. Contoh: examplebucket.
            var bucketName = "examplebucket";
            // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
            const string region = "cn-hangzhou";
            // Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
            var conf = new ClientConfiguration();
            // Gunakan Signature V4.
            conf.SignatureVersion = SignatureVersion.V4;

            // Buat instans OssClient.
            var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
            client.SetRegion(region);
            
            try
            {

                var acl = client.GetBucketAcl(bucketName);
                Console.WriteLine("Get bucket ACL success {0}", acl.ACL);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Get bucket ACL failed. {0}", ex.Message);
            }
        }
    }
}

Referensi

  • Untuk kode contoh lengkap yang digunakan untuk mengatur ACL bucket, lihat contoh di GitHub.

  • Untuk kode contoh lengkap yang digunakan untuk mengambil ACL bucket, lihat contoh di GitHub.

  • Untuk informasi selengkapnya mengenai operasi API yang digunakan untuk mengatur ACL bucket, lihat PutBucketAcl.

  • Untuk informasi selengkapnya mengenai operasi API yang digunakan untuk mengambil ACL bucket, lihat GetBucketAcl.