使用标签对存储进行分类 - Amazon Simple Storage Service

欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南Amazon S3 控制台用户指南Amazon S3 入门指南

使用标签对存储进行分类

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

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

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

  • 标签键的长度最大可以为 128 个 Unicode 字符,标签值的长度最大可以为 256 个 Unicode 字符。

  • 键和值区分大小写。

  • 有关标签限制的更多信息,请参阅用户定义的标签限制

示例

请考虑以下标签示例:

例 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 批处理操作包括跟踪进度、发送通知并存储所有操作的详细完成报告,从而提供完全托管、可审核的无服务器体验。您可以通过 AWS 管理控制台、AWS CLI、AWS 开发工具包或 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 授予了读取标签的权限。有关更多信息,请参阅 设置复制

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