S3 元数据实时清单表架构
实时清单表提供存储桶中所有对象及其版本的简单、可查询的清单,以便您可以确定数据的最新状态。对于对象的更新通常会在一小时内反映在清单表中。
可以使用此表,通过确定要为各种工作负载处理的对象,从而简化和加快业务工作流程和大数据作业。例如,可以查询清单表来执行以下操作:
-
查找存储在 S3 Glacier Deep Archive 存储类别中的所有对象。
-
创建对象标签的分配或查找不带标签的对象。
-
查找所有未使用具有 AWS Key Management Service(AWS KMS)密钥的服务器端加密(SSE-KMS)进行加密的对象。
为元数据表配置启用清单表时,该表将经历一个称为回填的过程,在此过程中,Amazon S3 扫描通用存储桶,以检索存储桶中所有对象的初始元数据。根据存储桶中的对象数量,此过程可能需要若干分钟(至少 15 分钟)到几小时。完成回填过程后,清单表的状态将从正在回填更改为活跃。完成回填后,对于对象的更新通常会在一小时内反映在清单表中。
注意
您需要为回填清单表付费。如果通用存储桶包含超过十亿个对象,您还需要为清单表支付每月费用。有关更多信息,请参阅 Amazon S3 定价
Amazon S3 元数据清单表包含行和列。每行代表通用存储桶中一个对象的当前状态。清单表提供存储桶中所有对象的简单、可查询的清单,以便您可以确定数据的当前状态。
下面是名为 amzn-s3-demo-bucket:
的通用存储桶的清单表示例:
bucket key sequence_number version_id is_delete_marker size last_modified_date e_tag storage_class is_multipart encryption_status is_bucket_key_enabled kms_key_arn checksum_algorithm object_tags user_metadata amzn-s3-demo-bucket Finance/statement1.pdf 80e737d8b4d82f776affffffffffffffff006737d8b4d82f776a00000000000000000000000000000000000000000000000072 FALSE 6223 11/15/2024 23:26 e131b86632dda753aac4018f72192b83 STANDARD FALSE SSE-KMS FALSE arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890df SSECRC32 {} {count -> Asia, customs -> false, family -> true, location -> Mary, name -> football, user -> United States} amzn-s3-demo-bucket s3-dg.pdf 80e737d8b4e39f1dbdffffffffffffffff006737d8b4e39f1dbd00000000000000000000000000000000000000000000000072 FALSE 3554 11/15/2024 23:26 9bb49efc2d92c05558ddffbbde8636d5 STANDARD FALSE DSSE-KMS FALSE arn:aws:kms:us-east-1:936810216292:key/0dcebce6-49fd-4cae-b2e2-5512ad281afd SSESHA1 {} {} amzn-s3-demo-bucket Development/Projects.xls 80e737d8b4ed9ac5c6ffffffffffffffff006737d8b4ed9ac5c600000000000000000000000000000000000000000000000072 FALSE 7746 11/15/2024 23:26 729a6863e47fb9955b31bfabce984908 STANDARD FALSE SSE-S3 FALSE NULL SSECRC32 {} {count -> Asia, customs -> Canada, family -> Billiards, filter -> true, location -> Europe, name -> Asia, user -> United States}
清单表具有以下架构:
列名称 | 必填? | 数据类型 | |
---|---|---|---|
|
是 | 字符串 | 通用存储桶名称。有关更多信息,请参阅 通用存储桶命名规则。 |
|
是 | 字符串 | 在存储桶中唯一地标识对象的对象键名称(或键)。有关更多信息,请参阅 为 Amazon S3 对象命名。 |
|
是 | 字符串 |
序列号,它是一个序数,包含在给定对象的记录中。要对相同存储桶和键的记录进行排序,您可以按 |
|
否 | 字符串 |
对象的版本 ID。在存储桶上启用版本控制后,Amazon S3 会为添加到存储桶的对象指定版本号。有关更多信息,请参阅 使用 S3 版本控制保留对象的多个版本。 在您设置版本控制状态之前存储在存储桶中的对象的版本 ID 为 null。 |
|
否 | 布尔值 |
对象的删除标记状态。如果对象是删除标记,则此值为 注意为删除标记添加的行的 |
|
否 | 长整型 |
以字节为单位的对象大小,不包括未完成的分段上传或对象元数据的大小。如果 |
|
否 | 时间戳 NTZ(无时区) |
对象创建日期或上次修改日期(以较晚者为准)。对于分段上传,对象创建日期是开始分段上传的日期。有关更多信息,请参阅 系统定义的对象元数据。 |
|
否 | 字符串 |
实体标签(ETag),这是对象的哈希。ETag 仅反映对于对象的内容的更改,而不反映对于对象的元数据的更改。ETag 可能是对象数据的 MD5 摘要。ETag 是否为 MD5 摘要取决于对象的创建方式及其加密方式。有关更多信息,请参阅《Amazon S3 API 参考》中的 Object。 |
|
否 | 字符串 |
用于存储对象的存储类。以下值之一: |
|
否 | 布尔值 |
对象的上传类型。如果对象以分段上传形式上传,则此值为 |
|
否 | 字符串 |
对象的服务器端加密状态,具体取决于使用哪种加密密钥:具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)、具有 AWS Key Management Service(AWS KMS)密钥的服务器端加密(SSE-KMS)、具有 AWS KMS keys的双层服务器端加密(DSSE-C)或具有客户提供的密钥的服务器端加密(SSE-C)。如果对象未加密,则此值为 null。可能的值为 |
|
否 | 布尔值 |
对象的 S3 存储桶密钥启用状态。如果对象将 S3 存储桶密钥用于 SSE-KMS,则此值为 |
|
否 | 字符串 |
用于加密对象的 KMS 密钥的 Amazon 资源名称(ARN),适用于 注意如果某行代表的对象版本在处理删除或覆盖事件时不再存在,则即使 |
|
否 | 字符串 |
用于为对象创建校验和的算法,为以下值之一: |
|
否 | Map <String, String> |
与对象关联的对象标签。对象标签存储为键值对的映射。如果对象没有对象标签,则会存储空映射 ( 注意如果 |
|
否 | Map <String, String> |
与对象关联的用户元数据。用户元数据存储为键值对的映射。如果对象没有用户元数据,则会存储空映射 ( 注意如果 |