Todos os produtos
Search
Central de documentação

Object Storage Service:Configure resource groups usando OSS SDK for Go 2.0

Última atualização: Sep 23, 2026

Este tópico descreve como configurar um grupo de recursos para um bucket do Object Storage Service (OSS) e consultar o ID do grupo de recursos ao qual o bucket pertence.

Notas de uso

  • O código de exemplo neste tópico utiliza o ID de região cn-hangzhou da região China (Hangzhou). Por padrão, o endpoint público é usado para acessar recursos em um bucket. Para acessar recursos no bucket por meio de outros serviços da Alibaba Cloud na mesma região em que o bucket está localizado, use o endpoint interno. Para obter mais informações sobre regiões e endpoints do OSS, consulte Regions and endpoints.

  • Neste tópico, as credenciais de acesso são obtidas a partir de variáveis de ambiente. Para obter mais informações sobre como configure as credenciais de acesso, consulte Configure access credentials.

  • Para configurar um grupo de recursos para um bucket, é necessário ter a permissão oss:PutBucketResourceGroup. Para consultar o ID do grupo de recursos ao qual um bucket pertence, é necessário ter a permissão oss:GetBucketResourceGroup. Para obter mais informações, consulte Grant a custom policy.

Método

Configurar um grupo de recursos para um bucket

func (c *Client) PutBucketResourceGroup(ctx context.Context, request *PutBucketResourceGroupRequest, optFns ...func(*Options)) (*PutBucketResourceGroupResult, error)

Consultar o ID do grupo de recursos ao qual um bucket pertence

func (c *Client) GetBucketResourceGroup(ctx context.Context, request *GetBucketResourceGroupRequest, optFns ...func(*Options)) (*GetBucketResourceGroupResult, error)

Parâmetros de solicitação

Parameter

Type

Description

ctx

context.Context

O contexto da solicitação, que pode ser usado para especificar a duração total da solicitação.

request

*PutBucketResourceGroupRequest

Os parâmetros de uma operação de API específica. Para obter mais informações, acesse PutBucketResourceGroupRequest.

*GetBucketResourceGroupRequest

Os parâmetros de uma operação de API específica. Para obter mais informações, acesse GetBucketResourceGroupRequest.

optFns

...func(*Options)

Opcional. O parâmetro de nível de operação. Para obter mais informações, acesse Options.

Parâmetros de resposta

Parameter

Type

Description

result

*PutBucketResourceGroupResult

A resposta da operação. Este parâmetro é válido quando o valor de err é nil. Para obter mais informações, acesse PutBucketResourceGroupResult.

*GetBucketResourceGroupRequest

A resposta da operação. Este parâmetro é válido quando o valor de err é nil. Para obter mais informações, acesse GetBucketResourceGroupResult.

err

error

O status da solicitação. Se a solicitação falhar, o valor de err não será nil.

Exemplos

Configure a resource group for a bucket

Importante

Se você não especifique um ID de grupo de recursos, o bucket pertencerá ao grupo de recursos padrão. Para adicionar o bucket a um grupo de recursos específico, verifique se o grupo de recursos foi crie. Para obter mais informações, consulte Create resource groups.

O código de exemplo a seguir demonstra como configurar um grupo de recursos para um bucket:

package main

import (
	"context"
	"flag"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// Specify the global variables.
var (
	region     string // The region in which the bucket is located.
	bucketName string // The name of the bucket.
)

// Specify the init function used to initialize command line parameters.
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}

func main() {
	// Parse command line parameters.
	flag.Parse()

	// Specify the ID of the resource group. If you do not specify a resource group ID, the bucket belongs to the default resource group.
	var groupId string = "rg-aekz****"

	// Check whether the bucket name is empty.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// Check whether the region is empty.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// Load the default configurations and specify the credential provider and region.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Create an OSSClient instance.
	client := oss.NewClient(cfg)

	// Create a request to configure the resource group for the bucket.
	request := &oss.PutBucketResourceGroupRequest{
		Bucket: oss.Ptr(bucketName), // The name of the bucket.
		BucketResourceGroupConfiguration: &oss.BucketResourceGroupConfiguration{
			ResourceGroupId: oss.Ptr(groupId),
		},
	}

	// Execute the request to configure the resource group for the bucket.
	result, err := client.PutBucketResourceGroup(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to put bucket resource group %v", err)
	}

	// Display the result of the request.
	log.Printf("put bucket resource group result:%#v\n", result)
}

Query the ID of the resource group to which a bucket belongs

O código de exemplo a seguir demonstra como consultar o ID do grupo de recursos ao qual um bucket pertence:

package main

import (
	"context"
	"flag"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// Specify the global variables.
var (
	region     string // The region in which the bucket is located.
	bucketName string // The name of the bucket.
)

// Specify the init function used to initialize command line parameters.
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}

func main() {
	// Parse command line parameters.
	flag.Parse()

	// Check whether the bucket name is empty.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// Check whether the region is empty.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// Load the default configurations and specify the credential provider and region.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Create an OSSClient instance.
	client := oss.NewClient(cfg)

	// Create a request to query the ID of the resource group to which the bucket belongs.
	request := &oss.GetBucketResourceGroupRequest{
		Bucket: oss.Ptr(bucketName), // The name of the bucket.
	}

	// Execute the request to query the ID of the resource group to which the bucket belongs and process the results.
	result, err := client.GetBucketResourceGroup(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to get bucket resource group %v", err)
	}

	// Display the result of the request.
	log.Printf("get bucket resource group id:%#v\n", *result.BucketResourceGroupConfiguration.ResourceGroupId)
}

Referências

  • Para acessar o código de exemplo completo de configuração de um grupo de recursos para um bucket, acesse GitHub.

  • Para obter mais informações sobre a operação de API disponível para configurar um grupo de recursos para um bucket, acesse PutBucketResourceGroup.

  • Para acessar o código de exemplo completo de consulta ao ID do grupo de recursos ao qual um bucket pertence, acesse GitHub.

  • Para obter mais informações sobre a operação de API disponível para consultar o ID do grupo de recursos ao qual um bucket pertence, acesse GetBucketResourceGroup.