全部产品
Search
文档中心

Object Storage Service:Mengelola daftar kontrol akses bucket (Go SDK V1)

更新时间:Nov 30, 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 endpoint publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lainnya yang berada di wilayah yang sama dengan OSS, gunakan endpoint internal. Untuk informasi selengkapnya mengenai wilayah dan endpoint OSS, lihat Wilayah dan titik akhir.

  • Kredensial akses pada topik ini diperoleh dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi kredensial akses.

  • Instans OSSClient pada topik ini dibuat menggunakan endpoint OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Konfigurasi client (Go SDK V1).

  • Untuk mengatur ACL bucket, Anda harus memiliki izin oss:PutBucketAcl. Untuk mengambil ACL bucket, Anda harus memiliki izin oss:GetBucketAcl. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.

Jenis ACL bucket

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. Pengguna lain tidak memiliki izin apa pun.

oss.ACLPrivate

Public-read

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

oss.ACLPublicRead

Public-read-write

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

oss.ACLPublicReadWrite

Kode contoh

Kode berikut menunjukkan cara mengatur dan mengambil ACL bucket:

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, untuk wilayah China (Hangzhou), setel titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah tempat bucket berada. Misalnya, untuk wilayah China (Hangzhou), setel wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Setel versi signature.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Gagal membuat client OSS: %v", err)
	}

	// Setel yourBucketName ke nama bucket.
	bucketName := "yourBucketName"

	// Atur ACL bucket menjadi public-read.
	err = client.SetBucketACL(bucketName, oss.ACLPublicRead)
	if err != nil {
		log.Fatalf("Gagal mengatur ACL bucket untuk '%s': %v", bucketName, err)
	}

	// Dapatkan ACL bucket.
	aclRes, err := client.GetBucketACL(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan ACL bucket untuk '%s': %v", bucketName, err)
	}

	log.Printf("ACL bucket untuk '%s': %s", bucketName, aclRes.ACL)
}

Referensi

  • Untuk kode contoh lengkap mengenai ACL bucket, lihat Contoh GitHub.

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

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