Amazon S3 清单 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon S3 清单

Amazon S3 清单是 Amazon S3 提供的用于帮助管理存储的其中一款工具。您可以出于业务、合规性和法规要求,使用它来审核和报告对象的复制和加密状态。您还可以使用 Amazon S3 清单简化和加快业务工作流和大数据作业,它可以有计划地取代 Amazon S3 同步 List API 操作。

Amazon S3 清单每天或每周为 S3 存储桶或共享前缀(即,其名称以通用字符串开头的对象)提供用于列出您的对象及其对应元数据的逗号分隔值 (CSV)、Apache 优化的行列式 (ORC)Apache Parquet (Parquet) 输出文件。如果是每周一次,则在初始报告后的每个星期日(UTC 时区)生成一份报告。有关 Amazon S3 清单定价的信息,请参阅 Amazon S3 定价

您可以为存储桶配置多个清单列表。您可以配置要包含在该清单中的对象元数据,是列出所有对象版本还是仅列出当前版本,要存储清单列表文件输出的位置以及是每天还是每周生成该清单。您也可以指定对清单列表文件进行加密。

您可以通过 Amazon Athena、Amazon Redshift Spectrum 以及其他工具(如 PrestoApache HiveApache Spark)使用标准 SQL 语言查询 Amazon S3 清单。使用 Athena 对您的清单文件运行查询非常简单。您可以在提供 Athena 的所有区域中使用 Athena 查询 Amazon S3 清单。

源存储桶和目标存储桶

由清单列出其对象的存储桶称为源存储桶。在其中存储清单列表文件的存储桶称为目标存储桶

源存储桶

清单列出了源存储桶中存储的对象。您可以获取整个存储桶的清单列表或按 (对象键名) 前缀筛选过的清单列表。

源存储桶:

  • 包含在清单中列出的对象。

  • 包含清单的配置。

目标存储桶

Amazon S3 清单列表文件将写入目标存储桶。要对目标存储桶内公共位置中的所有清单列表文件进行分组,您可以在清单配置中指定目标(对象键名)前缀。

目标存储桶:

  • 包含清单文件列表。

  • 包含 Manifest 文件,其中列出了存储在目标存储桶中的所有文件清单列表。有关更多信息,请参阅 清单 Manifest

  • 必须具有向 Amazon S3 授予验证存储桶的所有权的权限和将文件写入存储桶的权限的存储桶策略。

  • 必须与源存储桶位于同一 AWS 区域。

  • 可以与源存储桶相同。

  • 可以由与拥有源存储桶的账户不同的 AWS 账户拥有。

Amazon S3 清单列表

清单列表文件包含源存储桶中对象的列表以及每个对象的元数据。清单列表将在目标存储桶中存储为使用 GZIP 压缩的 CSV 文件、使用 ZLIB 压缩的 Apache 优化的行列式 (ORC) 文件或用 Snappy 压缩的 Apache Parquet (Parquet) 文件。

清单列表包含 S3 存储桶中的对象的列表以及每个列出的对象的以下元数据:

  • Bucket name (存储桶名称) – 清单所针对的存储桶的名称。

  • Key name (键名称) – 唯一地标识存储桶中的对象的对象键名(或键)。使用 CSV 文件格式时,键名采用 URL 编码形式,必须解码然后才能使用。

  • Version ID (版本 ID) – 对象版本 ID。在存储桶上启用版本控制后,Amazon S3 会为添加到存储桶的对象指定版本号。有关更多信息,请参阅 在 S3 存储桶中使用版本控制。(如果列表仅针对对象的当前版本,则不包含此字段。)

  • IsLatest – 如果对象的版本为最新,则设置为 True。(如果列表仅针对对象的当前版本,则不包含此字段。)

  • Size (大小) – 对象大小(以字节为单位)。

  • Last modified date (上次修改日期) – 对象创建日期或上次修改日期(以较晚者为准)。

  • ETag – 实体标签是对象的哈希。ETag 仅反映对对象的内容的更改,而不反映对对象的元数据的更改。ETag 可能是也可能不是对象数据的 MD5 摘要。是与不是取决于对象的创建方式和加密方式。

  • Storage class (存储类) – 用于存储对象的存储类。有关更多信息,请参阅 使用 Amazon S3 存储类

  • 智能分层访问层 – 如果存储在“智能分层”中,则为对象的访问层(频繁或不频繁)。有关更多信息,请参阅 用于自动优化访问模式不断变化或未知的数据的存储类

  • Multipart upload flag (分段上传标记) – 如果对象以分段上传形式上传,则设置为 True。有关更多信息,请参阅 使用分段上传来上传和复制对象

  • Delete marker (删除标记) – 如果对象是删除标记,则设置为 True。有关更多信息,请参阅 在 S3 存储桶中使用版本控制。(如果您已将您的报告配置为包含您的对象的所有版本,则此字段将自动添加到报告)。

  • Replication status (复制状态) – 设置为 PENDINGCOMPLETEDFAILEDREPLICA.。有关更多信息,请参阅获取复制状态信息

  • Encryption status (加密状态) – 设置为 SSE-S3SSE-CSSE-KMSNOT-SSE。SSE-S3、SSE-KMS 以及客户提供密钥的 SSE (SSE-C) 的服务器端加密状态。NOT-SSE 状态表示对象未使用服务器端加密进行加密。有关更多信息,请参阅 使用加密保护数据

  • S3 Object lock Retain until date (S3 对象锁保留截止日期) – 在此日期之前无法删除锁定对象。有关更多信息,请参阅 使用 S3 对象锁定

  • S3 Object lock Mode (S3 对象锁模式) – 对于已锁定的对象设置为 GovernanceCompliance。有关更多信息,请参阅 使用 S3 对象锁定

  • S3 Object Lock Legal hold status (S3 对象锁依法保留状态) – 如果依法保留已应用于对象,则设置为 On;否则将其设置为 Off。有关更多信息,请参阅 使用 S3 对象锁定

我们建议创建一个删除旧清单列表的生命周期策略。有关更多信息,请参阅 管理存储生命周期

清单一致性

并非所有对象都会显示每个清单列表中。清单列表提供了新对象和覆盖的 PUT 的最终一致性,并提供了 DELETE 的最终一致性。清单列表是存储桶项的滚动快照,这些项最终是一致的 (即,列表可能不包含最近添加或删除的对象)。

要在对对象执行操作之前验证对象的状态,我们建议您执行 HEAD Object REST API 请求以检索对象的元数据,或在 Amazon S3 控制台中检查对象的属性。您还可以使用 AWS CLI 或 AWS 开发工具包检查对象元数据。有关详细信息,请参阅《Amazon Simple Storage Service API 参考》中的 HEAD 对象

有关使用 S3 清单的更多信息,请参阅以下主题。