Todos os produtos
Search
Central de documentação

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

Última atualização: Sep 22, 2026

defina e obtenha as ACLs de buckets para controlar as permissões de leitura e gravação dos objetos em um bucket.

Observações

  • Este tópico utiliza o endpoint público da região china (Hangzhou). Se precisar acessar o oss a partir de outros service da Alibaba Cloud na mesma região, use um endpoint interno. Para mais informações sobre regiões e endpoints do oss, consulte Regions and endpoints.

  • Este tópico utiliza credenciais de acesso obtidas de variáveis de ambiente. Para mais informações sobre como configure credenciais de acesso, consulte Configure access credentials.

  • Este tópico demonstra como crie uma instância OSSClient com um endpoint do oss. Para configurações alternativas, como usar um domínio personalizado ou autenticar com credenciais do Security Token Service (STS), consulte Configure a client (Go SDK V1).

  • Para definir a ACL de um bucket, é necessária a permissão oss:PutBucketAcl. Para obter a ACL de um bucket, é necessária a permissão oss:GetBucketAcl. Para mais informações, consulte Grant a custom policy.

Tipos de ACL de bucket

O oss suporta as seguintes ACLs de bucket.

ACL

Descrição

Método

Private

Apenas o proprietário do bucket e usuários autorizados têm permissões de leitura e gravação nos objetos do bucket. Outros usuários não têm permissões.

oss.ACLPrivate

Public-read

O proprietário do bucket e usuários autorizados têm permissões de leitura e gravação nos objetos do bucket. Outros usuários têm apenas permissões de leitura. Use esta permissão com cautela.

oss.ACLPublicRead

Public-read-write

Todos os usuários têm permissões de leitura e gravação nos objetos do bucket. Use esta permissão com cautela.

oss.ACLPublicReadWrite

Código de exemplo

Para definir e obter a ACL de um bucket, execute o código abaixo:

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)
}

Referências

  • Para acessar o código de exemplo completo sobre ACLs de bucket, consulte Exemplo no GitHub.

  • Para mais detalhes sobre a operação de API utilizada para definir ACLs de bucket, consulte SetBucketACL.

  • Para mais detalhes sobre a operação de API utilizada para obter ACLs de bucket, consulte GetBucketACL.