Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Manage bucket access control lists (Go SDK V1)

Son Güncelleme:Oct 01, 2026

Bir paket içindeki nesnelere yönelik okuma ve yazma izinlerini kontrol etmek için paket ACL'lerini ayarlayın ve alın.

Notlar

  • Bu konuda Çin (Hangzhou) bölgesinin genel uç noktası kullanılmaktadır. OSS ile aynı bölgedeki diğer Alibaba Cloud hizmetlerinden OSS'e erişmek istiyorsanız dahili bir uç nokta kullanın. OSS bölgeleri ve uç noktaları hakkında daha fazla bilgi için bkz. Bölgeler ve uç noktalar.

  • Bu konuda erişim kimlik bilgileri ortam değişkenlerinden elde edilmektedir. Erişim kimlik bilgilerini yapılandırma hakkında daha fazla bilgi için bkz. Erişim kimlik bilgilerini yapılandırın.

  • Bu konu, bir OSS uç noktası kullanarak bir OSSClient örneği oluşturmayı göstermektedir. Özel bir alan adı kullanma veya Security Token Service (STS) kimlik bilgileriyle kimlik doğrulama gibi alternatif yapılandırmalar için bkz. İstemciyi yapılandırın (Go SDK V1).

  • Bir paketin ACL'sini ayarlamak için oss:PutBucketAcl iznine sahip olmanız gerekir. Bir paketin ACL'sini almak için oss:GetBucketAcl iznine sahip olmanız gerekir. Daha fazla bilgi için bkz. Özel bir ilke atayın.

Paket ACL türleri

OSS aşağıdaki paket ACL türlerini destekler.


ACL


Açıklama


Yöntem


Private


Yalnızca paket sahibi ve yetkili kullanıcıların paketteki nesneler üzerinde okuma ve yazma izni vardır. Diğer kullanıcıların izni yoktur.


oss.ACLPrivate


Public-read


Paket sahibi ve yetkili kullanıcıların paketteki nesneler üzerinde okuma ve yazma izni vardır. Diğer kullanıcıların yalnızca okuma izni vardır. Bu izni dikkatli kullanın.


oss.ACLPublicRead


Public-read-write


Tüm kullanıcıların paketteki nesneler üzerinde okuma ve yazma izni vardır. Bu izni dikkatli kullanın.


oss.ACLPublicReadWrite

Örnek kod

Aşağıdaki kod, bir paketin ACL'sini nasıl ayarlayacağınızı ve alacağınızı gösterir:

package main

import (
	"log"

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

func main() {
	// Obtain access credentials from environment variables. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Failed to create credentials provider: %v", err)
	}

	// Create an OSSClient instance.
	// Set yourEndpoint to the endpoint of the bucket. For example, for the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. For other regions, use the actual endpoint.
	// Set yourRegion to the region where the bucket is located. For example, for the China (Hangzhou) region, set the region to cn-hangzhou. For other regions, use the actual region.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Set the signature version.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Failed to create OSS client: %v", err)
	}

	// Set yourBucketName to the name of the bucket.
	bucketName := "yourBucketName"

	// Set the bucket ACL to public-read.
	err = client.SetBucketACL(bucketName, oss.ACLPublicRead)
	if err != nil {
		log.Fatalf("Failed to set bucket ACL for '%s': %v", bucketName, err)
	}

	// Get the bucket ACL.
	aclRes, err := client.GetBucketACL(bucketName)
	if err != nil {
		log.Fatalf("Failed to get bucket ACL for '%s': %v", bucketName, err)
	}

	log.Printf("Bucket ACL for '%s': %s", bucketName, aclRes.ACL)
}

Başvurular

  • Paket ACL'lerine ilişkin tam örnek kod için bkz. GitHub örneği.

  • Paket ACL'lerini ayarlamak için kullanılan API işlemi hakkında daha fazla bilgi için bkz. SetBucketACL.

  • Paket ACL'lerini almak için kullanılan API işlemi hakkında daha fazla bilgi için bkz. GetBucketACL.