管理注释
您可以使用 AWS 管理控制台、AWS CLI 或 AWS SDK 在 Amazon S3 对象上添加、检索和删除注释。以下各节描述如何执行每个操作。
添加或更新注释
您可以向对象添加新注释,也可以通过替换其有效载荷来更新现有注释。
使用 S3 控制台
向对象添加注释
-
登录到 AWS 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Bucket(存储桶)列表中,请选择包含对象的存储桶的名称。
-
在对象列表中,选择要添加注释的对象的名称。
-
选择属性选项卡。
-
滚动到注释部分,然后选择添加注释。
-
对于名称,输入注释的名称(例如
ml.sentiment)。名称必须为 1–512 字节,可以包含 Unicode 字母、数字、下划线、句点和连字符。名称不能以aws或s3开头。 -
选择选择文件以上传注释内容。该文件必须可进行 UTF-8 编码且大小不超过 1 MB。
完成注释
-
(可选)在校验和下,选择校验和算法。
-
选择添加注释。
注意
要在创建注释后查看其内容,必须下载注释。S3 控制台不以内联方式显示注释内容。
使用 AWS CLI
要在对象上添加或更新注释,请使用 put-object-annotation 命令。--annotation-payload 参数接受文件路径。
aws s3api put-object-annotation \ --bucket amzn-s3-demo-bucket \ --key myDocument.pdf \ --annotation-name "ml.sentiment" \ --annotation-payload /tmp/sentiment.json
要仅在自上次读取对象以来对象未被覆盖的情况下编写注释,请使用该对象的当前 ETag 指定 --object-if-match 参数。
aws s3api put-object-annotation \ --bucket amzn-s3-demo-bucket \ --key myDocument.pdf \ --annotation-name "ml.sentiment" \ --annotation-payload /tmp/sentiment.json \ --object-if-match "\"d6eb32081c822ed572b70567826d9d9d\""
使用 AWS SDK
以下示例使用适用于 Python 的 AWS SDK(Boto3)向对象添加注释。
import boto3 import json s3 = boto3.client('s3') s3.put_object_annotation( Bucket='amzn-s3-demo-bucket', Key='myDocument.pdf', AnnotationName='ml.sentiment', AnnotationPayload=json.dumps({ 'score': 0.95, 'label': 'positive', 'model': 'sentiment-v3' }).encode('utf-8') )
检索注释
您可以检索特定的注释或列出对象上的所有注释。
使用 S3 控制台
检索注释
-
登录到 AWS 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在存储桶列表中,请选择包含对象的存储桶的名称。
-
在 Objects(对象)列表中,请选择对象的名称。
-
选择属性选项卡,然后滚动到注释部分。
-
要查看注释内容,请选择注释名称旁边的下载。
使用 AWS CLI
要检索特定的注释,请使用 get-object-annotation 命令。
aws s3api get-object-annotation \ --bucket amzn-s3-demo-bucket \ --key myDocument.pdf \ --annotation-name "ml.sentiment" \ output.json
要列出对象上的所有注释,请使用 list-object-annotations 命令。
aws s3api list-object-annotations \ --bucket amzn-s3-demo-bucket \ --key myDocument.pdf
使用 AWS SDK
以下示例使用适用于 Python 的 AWS SDK(Boto3)来检索和列出注释。
import boto3 import json s3 = boto3.client('s3') # Retrieve a specific annotation response = s3.get_object_annotation( Bucket='amzn-s3-demo-bucket', Key='myDocument.pdf', AnnotationName='ml.sentiment' ) content = json.loads(response['AnnotationPayload'].read()) # List all annotations on an object response = s3.list_object_annotations( Bucket='amzn-s3-demo-bucket', Key='myDocument.pdf' ) for annotation in response['Annotations']: print(f"{annotation['AnnotationName']} - {annotation['Size']} bytes")
删除注释
您可以从对象中删除特定的注释。注释删除是永久性的,无法撤消。
使用 S3 控制台
删除注释
-
登录到 AWS 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在存储桶列表中,请选择包含对象的存储桶的名称。
-
在 Objects(对象)列表中,请选择对象的名称。
-
选择属性选项卡,然后滚动到注释部分。
-
选择要删除的注释。
-
选择删除,然后确认删除。
使用 AWS CLI
要删除特定的注释,请使用 delete-object-annotation 命令。
aws s3api delete-object-annotation \ --bucket amzn-s3-demo-bucket \ --key myDocument.pdf \ --annotation-name "ml.sentiment"
使用 AWS SDK
以下示例使用适用于 Python 的 AWS SDK(Boto3)来删除注释。
import boto3 s3 = boto3.client('s3') s3.delete_object_annotation( Bucket='amzn-s3-demo-bucket', Key='myDocument.pdf', AnnotationName='ml.sentiment' )