All Products
Search
Document Center

Object Storage Service:Query the tags of an object (Go SDK V2)

Last Updated:Aug 02, 2025

This topic describes how to query the tags of an object using Go SDK V2.

Usage notes

  • The sample code in this topic uses the region ID cn-hangzhou for the China (Hangzhou) region. By default, a public endpoint is used to access resources in a bucket. If you want to access bucket resources from other Alibaba Cloud services in the same region, use an internal endpoint. For more information about the regions and endpoints that are supported by Object Storage Service (OSS), see OSS regions and endpoints.

  • In this topic, access credentials are retrieved from environment variables. For more information about how to configure access credentials, see Configure access credentials.

  • To query the tags of an object, you must have the oss:GetObjectTagging permission. For more information, see Grant custom policy to RAM users.

Note
  • Object tagging uses key-value pairs to identify objects. For more information about object tagging, see Object tagging in the OSS Developer Guide.

  • For more information about how to query the tags of an object, see GetObjectTagging.

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(&region, "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.
	}

	// Make the query request and process the results.
	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))
}

References

  • For the complete sample code that is used to query the tags of an object, visit GitHub.

  • For more information about the API operation for querying object tags, see GetObjectTagging.