Tous les produits
Search
Centre de documentation

Object Storage Service:Configurer des groupes de ressources à l'aide d'OSS SDK for Go 2.0

Dernière mise à jour :Aug 18, 2026

Cette rubrique explique comment configurer un groupe de ressources pour un bucket Object Storage Service (OSS) et interroger l'ID du groupe de ressources auquel le bucket appartient.

Remarques sur l'utilisation

  • L'exemple de code de cette rubrique utilise l'ID de région cn-hangzhou de la région Chine (Hangzhou). Par défaut, le point de terminaison public permet d'accéder aux ressources d'un bucket. Pour accéder aux ressources du bucket depuis d'autres services Alibaba Cloud situés dans la même région, utilisez le point de terminaison interne. Pour plus d'informations sur les régions et les points de terminaison OSS, consultez la page Régions et points de terminaison.

  • Dans cette rubrique, les identifiants d'accès proviennent des variables d'environnement. Pour savoir comment les configurer, reportez-vous à la section Configurer les identifiants d'accès.

  • Pour configurer un groupe de ressources pour un bucket, vous devez disposer de l'autorisation oss:PutBucketResourceGroup. Pour interroger l'ID du groupe de ressources auquel un bucket appartient, vous devez disposer de l'autorisation oss:GetBucketResourceGroup. Pour en savoir plus, consultez la page Accorder une stratégie personnalisée.

Méthode

Configurer un groupe de ressources pour un bucket

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

Interroger l'ID du groupe de ressources auquel un bucket appartient

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

Paramètres de la requête

Paramètre

Type

Description

ctx

context.Context

Contexte de la requête, permettant de spécifier sa durée totale.

request

*PutBucketResourceGroupRequest

Paramètres d'une opération API spécifique. Pour plus d'informations, consultez la page PutBucketResourceGroupRequest.

*GetBucketResourceGroupRequest

Paramètres d'une opération API spécifique. Pour plus d'informations, consultez la page GetBucketResourceGroupRequest.

optFns

...func(*Options)

Facultatif. Paramètre au niveau de l'opération. Pour plus d'informations, consultez la page Options.

Paramètres de la réponse

Paramètre

Type

Description

result

*PutBucketResourceGroupResult

Réponse à l'opération. Ce paramètre est valide si la valeur de err est nulle. Pour plus d'informations, consultez la page PutBucketResourceGroupResult.

*GetBucketResourceGroupRequest

Réponse à l'opération. Ce paramètre est valide si la valeur de err est nulle. Pour plus d'informations, consultez la page GetBucketResourceGroupResult.

err

error

État de la requête. Si la requête échoue, la valeur de err n'est pas nulle.

Exemples

Configurer un groupe de ressources pour un bucket

Important

Si vous ne spécifiez aucun ID de groupe de ressources, le bucket est associé au groupe de ressources par défaut. Pour ajouter le bucket à un groupe de ressources spécifique, assurez-vous que celui-ci a bien été créé. Pour plus d'informations, consultez la page Créer des groupes de ressources.

L'exemple de code suivant montre comment configurer un groupe de ressources pour un 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)
}

Interroger l'ID du groupe de ressources auquel un bucket appartient

L'exemple de code suivant montre comment interroger l'ID du groupe de ressources auquel un bucket appartient :

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

Références

  • Pour obtenir l'exemple de code complet permettant de configurer un groupe de ressources pour un bucket, consultez la page GitHub.

  • Pour plus d'informations sur l'opération API permettant de configurer un groupe de ressources pour un bucket, consultez la page PutBucketResourceGroup.

  • Pour obtenir l'exemple de code complet permettant d'interroger l'ID du groupe de ressources auquel un bucket appartient, consultez la page GitHub.

  • Pour plus d'informations sur l'opération API permettant d'interroger l'ID du groupe de ressources auquel un bucket appartient, consultez la page GetBucketResourceGroup.