This topic describes how to use Python SDK V2 to obtain the tags of an object.
Notes
The sample code in this topic uses the China (Hangzhou) region (
cn-hangzhou) as an example. By default, the public endpoint is used. To access OSS from other Alibaba Cloud services in the same region, use an internal endpoint. For more information about the regions and endpoints that OSS supports, see Regions and endpoints.Object tagging uses a set of key-value pairs to tag an object. For more information, see Object tagging.
For more information about how to obtain object tags, see GetObjectTagging.
To obtain object tags, you must have the
oss:GetObjectTaggingpermission. For more information, see Grant custom permissions to a RAM user.
Method definition
get_object_tagging(request: GetObjectTaggingRequest, **kwargs) → GetObjectTaggingResultRequest parameters
Parameter | Type | Description |
request | GetObjectTaggingRequest | The request parameters. For more information, see GetObjectTaggingRequest |
Return values
Type | Description |
GetObjectTaggingResult | The return value. For more information, see GetObjectTaggingResult |
For the complete method definition, see get_object_tagging.
Sample code
You can use the following code to obtain the tags for a specified file in a bucket.
import argparse
import alibabacloud_oss_v2 as oss
# Create a command-line argument parser to process parameters passed in by users from the command line.
parser = argparse.ArgumentParser(description="get object tagging sample")
# Add required and optional command-line arguments.
# --region: The region where the OSS bucket is located.
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# --bucket: The name of the bucket.
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
# --endpoint: An optional parameter that specifies the domain name used to access OSS.
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
# --key: The key of the object (file) in OSS.
parser.add_argument('--key', help='The name of the object.', required=True)
def main():
# Parse the command-line arguments.
args = parser.parse_args()
# Load the required authentication credentials for OSS from environment variables.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Create a configuration object using the default configurations provided by the SDK.
cfg = oss.config.load_default()
# Set the credential provider to the previously created object.
cfg.credentials_provider = credentials_provider
# Set the region for the OSS client based on user input.
cfg.region = args.region
# If the user provides a custom endpoint, update the configuration.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Create an OSS client instance using the preceding configurations.
client = oss.Client(cfg)
# Obtain the tag information of the specified object.
result = client.get_object_tagging(oss.GetObjectTaggingRequest(
bucket=args.bucket,
key=args.key,
))
# Print the result of obtaining the tag information.
print(f'status code: {result.status_code},'
f' request id: {result.request_id},'
f' version id: {result.version_id},'
)
# If tags exist, traverse and print the key-value pair of each tag.
if result.tag_set.tags:
for o in result.tag_set.tags:
print(f'tags key: {o.key}, tags value: {o.value}')
# Call the main function when this script is run.
if __name__ == "__main__":
main()
References
For the complete sample code for obtaining object tags, see get_object_tagging.py.