Use the GetObjectTagging operation to retrieve the tags attached to an object in Object Storage Service (OSS). Tags are key-value pairs that you can use to classify and manage objects.
Prerequisites
Before you begin, make sure you have:
Access credentials configured as environment variables. See Configure access credentials.
The
oss:GetObjectTaggingpermission granted to your RAM user. See Grant custom policy to RAM users.
The sample code uses cn-hangzhou (China (Hangzhou)) as the region ID. By default, a public endpoint is used to access bucket resources. To access OSS from another Alibaba Cloud service in the same region, use an internal endpoint instead. See OSS regions and endpoints.
Sample code
The following code provides an example of how to query the tags of an object in 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"
)
// Define global variables.
var (
region string // The region in which the bucket is located.
bucketName string // The name of the bucket.
objectName string // The name of the object.
)
// Specify the init function used to initialize command line parameters.
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
flag.StringVar(&objectName, "object", "", "The name of the object.")
}
func main() {
// Parse command line parameters.
flag.Parse()
// Check whether the region is specified.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
// Check whether the name of the bucket is specified.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
// Check whether the name of the object is specified.
if len(objectName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, object name required")
}
// Load the default configurations and specify the credential provider and region.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Create an OSS client.
client := oss.NewClient(cfg)
// Create a request to query the tags of the object.
getRequest := &oss.GetObjectTaggingRequest{
Bucket: oss.Ptr(bucketName), // The name of the bucket.
Key: oss.Ptr(objectName), // The name of the object.
}
// Send the request and handle the response.
getResult, err := client.GetObjectTagging(context.TODO(), getRequest)
if err != nil {
log.Fatalf("failed to get object tagging %v", err)
}
// Display the number of tags.
log.Printf("get object tagging result:%#v\n", len(getResult.Tags))
}