使用标签对存储进行分类 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用标签对存储进行分类

使用对象标签对存储进行分类。每个标签都是一个键-值对。

您可以将标签添加到新对象(当您上传新对象时),也可以将标签添加到现有对象。

  • 您最多可以将 10 个标签与对象关联。与对象关联的标签必须具有唯一的标签键。

  • 标签键的长度最大可以为 128 个 Unicode 字符,标签值的长度最大可以为 256 个 Unicode 字符。Amazon S3 对象标签在内部以 UTF-16 表示。请注意,采用 UTF-16 时,字符占用 1 或 2 个字符位置。

  • 键和值区分大小写。

  • 有关标签限制的更多信息,请参阅《Amazon 账单与成本管理用户指南》中的 User-defined tag restrictions。有关基本标签限制,请参阅《Amazon EC2 用户指南》中的标签限制

示例

请考虑以下标签示例:

例 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 类别,则可以相应地标记该对象。

其他优势

除了数据分类之外,标签还提供了下列好处:

  • 对象标签支持权限的精细访问控制。例如,您可以向用户授予仅读取带有特定标签的对象的权限。

  • 对象标签支持精细的对象生命周期管理,在其中,除了在生命周期规则中指定键名前缀之外,还可以指定基于标签的筛选条件。

  • 使用 Amazon S3 分析时,您可以配置筛选条件,以便按对象标签、键名前缀或前缀和标签的组合对对象进行分组以进行分析。

  • 您还可以自定义 Amazon CloudWatch 指标以按特定标签筛选条件显示信息。以下各节提供了详细信息。

重要

使用标签来标记包含机密数据(如 personally identifiable information (PII) 或受保护医疗信息 (PHI))的对象是可以接受的。但标签本身不应包含任何机密信息。

通过单个请求将对象标签集添加到多个 Amazon S3 对象

要使用单个请求向多个 Amazon S3 对象添加对象标签集,您可以使用 S3 分批操作。您为 S3 批量操作提供要操作的对象列表。S3 批量操作调用相应的 API 操作来执行指定的操作。单个批量操作任务可对包含 EB 级数据的数十亿个对象执行指定操作。

S3 批量操作特征包括跟踪进度、发送通知并存储所有操作的详细完成报告,从而提供完全托管、可审核的无服务器体验。您可以通过 Amazon S3 控制台、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 操作

  • PUT 对象启动分段上传 – 您可以在创建对象时指定标签。您将使用 x-amz-tagging 请求标头指定标签。

  • 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 复制(默认行为)标签或将标签替换为请求中提供的一组新标签。

请注意以下几点:

其他配置

本节介绍对象标签如何与其他配置关联。

对象标签和生命周期管理

在桶生命周期配置中,您可以指定筛选条件以选择该规则适用的一部分对象。您可以基于键名前缀、对象标签或两者指定筛选条件。

假设您将照片(原始格式和已完成格式)存储在 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(启用事件通知)。

有关对象标签的更多信息,请参阅以下主题: