Todos os produtos
Search
Central de documentação

Object Storage Service:Gerencie listas de controle de acesso de buckets (Go SDK V1)

Última atualização: Jul 03, 2026

Defina e obtenha 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). Para acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para mais informações sobre regiões e endpoints do OSS, consulte Regiões e endpoints.

  • Este tópico obtém as credenciais de acesso de variáveis de ambiente. Para saber como configure credenciais de acesso, consulte Configure credenciais de acesso.

  • Este tópico demonstra como crie uma instância OSSClient com um endpoint do OSS. Para configurações alternativas, como uso de domínio personalizado ou autenticação com credenciais do Security Token Service (STS), consulte Configure um cliente (Go SDK V1).

  • Para defina a ACL de um bucket, você precisa da permissão oss:PutBucketAcl. Para obter a ACL de um bucket, você precisa da permissão oss:GetBucketAcl. Para mais informações, consulte Conceder uma política personalizada.

Tipos de ACL de bucket

O OSS oferece suporte aos seguintes tipos de ACL para buckets.

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ão de leitura. Use essa 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 essa permissão com cautela.

oss.ACLPublicReadWrite

Código de exemplo

O código abaixo mostra como defina e recupere a ACL de um bucket:

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 ver o código de exemplo completo sobre ACLs de buckets, consulte o exemplo no GitHub.

  • Para mais detalhes sobre a operação de API usada para defina ACLs de buckets, consulte SetBucketACL.

  • Para mais detalhes sobre a operação de API usada para recuperar ACLs de buckets, consulte GetBucketACL.