使用标签对存储进行分类
使用对象标签对存储进行分类。每个标签都是一个键-值对。
您可以将标签添加到新对象(当您上传新对象时),也可以将标签添加到现有对象。
-
您最多可以将 10 个标签与对象关联。与对象关联的标签必须具有唯一的标签键。
-
标签键的长度最大可以为 128 个 Unicode 字符,标签值的长度最大可以为 256 个 Unicode 字符。
-
键和值区分大小写。
-
有关标签限制的更多信息,请参阅用户定义的标签限制。
Examples
请考虑以下标签示例:
例 PHI 信息
假设某个对象包含受保护医疗信息 (PHI) 数据。您可以使用以下键/值对标记该对象。
PHI=True
或
Classification=PHI
例 项目文件
假设您将项目文件存储在 S3 存储桶中。您可以使用一个名为 Project
的键和一个值标记这些对象,如下所示。
Project=Blue
例 多个标签
您可以将多个标签添加到一个对象,如下所示。
Project=x Classification=confidential
键名前缀和标签
您还可以使用对象键名前缀来分类存储。但是,基于前缀的分类是一维的。请考虑以下对象键名:
photos/photo1.jpg project/projectx/document.pdf project/projecty/document2.pdf
这些键名具有前缀 photos/
、project/projectx/
和 project/projecty/
。这些前缀支持一维分类。即,一个前缀下的一切都属于一个类别。例如,前缀 project/projectx
可确定与项目 x 相关的所有文档。
利用标签,您现在获得了另一个维度。如果您希望 photo1 属于项目 x 类别,则可以相应地标记该对象。
其他优势
除了数据分类之外,标签还提供了下列好处:
-
对象标签支持权限的精细访问控制。例如,您可以向一个 IAM 用户授予仅读取带有特定标签的对象的权限。
-
对象标签支持精细的对象生命周期管理,在其中,除了在生命周期规则中指定键名前缀之外,还可以指定基于标签的筛选条件。
-
使用 Amazon S3 分析时,您可以配置筛选条件,以便按对象标签、键名前缀或前缀和标签的组合对对象进行分组以进行分析。
-
您还可以自定义 Amazon CloudWatch 指标以按特定标签筛选条件显示信息。以下各节提供了详细信息。
重要
使用标签来标记包含机密数据(如个人身份信息 (PII) 或受保护医疗信息 (PHI))的对象是可以接受的。但标签本身不应包含任何机密信息。
通过单个请求将对象标签集添加到多个 Amazon S3 对象
要使用单个请求向多个 Amazon S3 对象添加对象标签集,您可以使用 S3 分批操作。您为 S3 分批操作提供要操作的对象列表。S3 分批操作调用相应的 API 来执行指定的操作。单个分批操作任务可对包含 EB 级数据的数十亿个对象执行指定操作。
S3 分批操作包括跟踪进度、发送通知并存储所有操作的详细完成报告,从而提供完全托管、可审核的无服务器体验。您可以通过 Amazon Web Services Management Console、Amazon CLI、Amazon SDK 或 REST API 使用 S3 分批操作。有关更多信息,请参阅 S3 分批操作基础知识。
有关对象标签的更多信息,请参阅 管理对象标签。
与对象标签相关的 API 操作
Amazon S3 支持特定于对象标签的以下 API 操作:
对象 API 操作
-
PUT 对象标签 – 替换对象上的标签。您可以在请求正文中指定标签。使用此 API 的对象标签管理有两个不同的情形。
-
对象没有标签 - 利用此 API,您可以将一组标签添加到某个对象 (该对象没有以前的标签)。
-
对象有一组现有标签 - 要修改现有标签,您必须先检索现有标签集,在客户端侧修改它,然后使用此 API 替换它。
注意
如果您发送带有空标签集的此请求,Amazon S3 将删除对象上的现有标签集。如果您使用此方法,则将需为套餐 1 请求 (PUT) 付费。有关更多信息,请参阅 Amazon S3 定价
。 DELETE 对象标签请求优先进行,因为它可获得相同的结果而不会产生费用。
-
-
GET 对象标签 – 返回与某个对象关联的标签集。Amazon S3 将在响应正文中返回对象标签。
-
DELETE 对象标签 – 删除与某个对象关联的标签集。
支持标签的其他 API 操作
-
GET 对象 – Amazon S3 不会返回标签集,而会在
x-amz-tag-count
标头中返回对象标签计数(仅当请求者有权读取标签时),因为标头响应大小限制为 8000 个字节。如果要查看标签,您应该再发出一个 GET 对象标签 API 操作请求。 -
POST 对象 – 您可以在 POST 请求中指定标签。
只要请求中的标签不超过 8 K 个字节的 HTTP 请求标头大小限制,您就可以使用
PUT Object
API 创建带标签的对象。如果您指定的标签超过了标头大小限制,您可以使用将标签包含在正文中的此 POST 方法。PUT 对象 – 复制 – 您可以在请求中指定
x-amz-tagging-directive
以指示 Amazon S3 复制(默认行为)标签或将标签替换为请求中提供的一组新标签。
请注意以下几点:
-
S3 对象标签非常一致。有关更多信息,请参阅 Amazon S3 数据一致性模型。
其他配置
本节介绍对象标签如何与其他配置关联。
对象标签和生命周期管理
在存储桶生命周期配置中,您可以指定筛选条件以选择该规则适用的一部分对象。您可以基于键名前缀、对象标签或两者指定筛选条件。
假设您将照片(原始格式和已完成格式)存储在 Amazon S3 存储桶中。您可以按下面所示标记这些对象。
phototype=raw or phototype=finished
您可能考虑有时候在创建原始照片后将其存档到 S3 Glacier。您可以在生命周期规则中配置一个筛选条件,用于确定一部分包含特定标签 (photos/
) 且带有键名称前缀 (phototype=raw
) 的对象。
有关更多信息,请参阅 管理存储生命周期。
对象标签和复制
如果您在存储桶上配置了复制,Amazon S3 将复制标签,前提是您向 Amazon S3 授予了读取标签的权限。有关更多信息,请参阅 设置复制。
对象标记事件通知
您可以设置 Amazon S3 事件通知以在添加对象标签或从对象中删除时接收通知。s3:ObjectTagging:Put
事件类型会在对象上放置标签或现有标签更新时通知您。当从对象中移除标签时,s3:ObjectTagging:Delete
事件类型会通知您。有关更多信息,请参阅 Enabling event notifications(启用事件通知)。
有关对象标签的更多信息,请参阅以下主题: