Use PutBucketResourceGroup to assign a bucket to a resource group, and GetBucketResourceGroup to retrieve the resource group ID of a bucket.
Prerequisites
Before you begin, make sure you have:
Access credentials configured as environment variables. See Configure access credentials.
The
oss:PutBucketResourceGrouppermission to assign a resource group, oross:GetBucketResourceGroupto query one. See Attach a custom policy to a RAM user.The target resource group already created, if assigning a bucket to a specific group. See Create a resource group.
Usage notes
The sample code uses the
cn-hangzhouregion and connects via the public endpoint. To access OSS from another Alibaba Cloud service in the same region, use the internal endpoint instead. See Regions and endpoints.If you don't specify a resource group ID when calling
PutBucketResourceGroup, the bucket is assigned to the default resource group.
Assign a resource group to a bucket
func (c *Client) PutBucketResourceGroup(ctx context.Context, request *PutBucketResourceGroupRequest, optFns ...func(*Options)) (*PutBucketResourceGroupResult, error)Related operation: Get the resource group ID of a bucket
Parameters
| Parameter | Type | Description |
|---|---|---|
ctx | context.Context | Request context. Use this to set a total timeout for the request. |
request | *PutBucketResourceGroupRequest | Request parameters. The ResourceGroupId field is optional — if left blank, the bucket is assigned to the default resource group. See PutBucketResourceGroupRequest. |
optFns | ...func(*Options) | Optional operation-level configuration. See Options. |
Return values
| Return value | Type | Description |
|---|---|---|
result | *PutBucketResourceGroupResult | Operation result. Valid when err is nil. See PutBucketResourceGroupResult. |
err | error | nil on success; non-nil if the request fails. |
Example
The following example assigns a bucket to a specific resource group.
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"
)
var (
region string
bucketName string
)
func init() {
flag.StringVar(®ion, "region", "", "The region where the bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The bucket name.")
}
func main() {
flag.Parse()
// Replace with your resource group ID.
// If left blank, the bucket is assigned to the default resource group.
var groupId string = "rg-aekz****"
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
// Load credentials from environment variables and set the region.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg)
request := &oss.PutBucketResourceGroupRequest{
Bucket: oss.Ptr(bucketName),
BucketResourceGroupConfiguration: &oss.BucketResourceGroupConfiguration{
ResourceGroupId: oss.Ptr(groupId),
},
}
result, err := client.PutBucketResourceGroup(context.TODO(), request)
if err != nil {
log.Fatalf("failed to put bucket resource group %v", err)
}
log.Printf("put bucket resource group result:%#v\n", result)
}For the complete sample, see put_bucket_resource_group.go on GitHub.
Get the resource group ID of a bucket
func (c *Client) GetBucketResourceGroup(ctx context.Context, request *GetBucketResourceGroupRequest, optFns ...func(*Options)) (*GetBucketResourceGroupResult, error)Related operation: Assign a resource group to a bucket
Parameters
| Parameter | Type | Description |
|---|---|---|
ctx | context.Context | Request context. Use this to set a total timeout for the request. |
request | *GetBucketResourceGroupRequest | Request parameters. See GetBucketResourceGroupRequest. |
optFns | ...func(*Options) | Optional operation-level configuration. See Options. |
Return values
| Return value | Type | Description |
|---|---|---|
result | *GetBucketResourceGroupResult | Operation result. Valid when err is nil. Access the resource group ID via result.BucketResourceGroupConfiguration.ResourceGroupId. See GetBucketResourceGroupResult. |
err | error | nil on success; non-nil if the request fails. |
Example
The following example retrieves the resource group ID of a 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"
)
var (
region string
bucketName string
)
func init() {
flag.StringVar(®ion, "region", "", "The region where the bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The bucket name.")
}
func main() {
flag.Parse()
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
// Load credentials from environment variables and set the region.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg)
request := &oss.GetBucketResourceGroupRequest{
Bucket: oss.Ptr(bucketName),
}
result, err := client.GetBucketResourceGroup(context.TODO(), request)
if err != nil {
log.Fatalf("failed to get bucket resource group %v", err)
}
log.Printf("get bucket resource group id:%#v\n", *result.BucketResourceGroupConfiguration.ResourceGroupId)
}For the complete sample, see get_bucket_resource_group.go on GitHub.