S3 元数据表架构 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

S3 元数据表架构

Amazon S3 元数据表包含行和列。每行代表一个突变事件,该事件在您的通用存储桶中创建、更新或删除了一个对象。这些事件中大多数是各种用户操作的结果,但其中一些事件是由 Amazon S3 代表您执行的操作的结果,例如 S3 生命周期到期或存储类转换。

S3 元数据是一个事件处理管道,旨在使元数据表与通用存储桶中发生的更改保持最终一致。请注意,当 S3 元数据收到创建或更新对象的通知时,该对象可能已经在存储桶中被覆盖或删除。默认情况下,会为每个 S3 bucket operation 创建一个表行。但是,如果任何对象元数据被删除或覆盖,或者无法再检索对象,则某些列可能会显示一个 NULL 值来指示任何缺失的元数据架构。

下面是名为 amzn-s3-demo-bucket: 的通用存储桶的元数据表示例:

bucket key sequence_number record_type record_timestamp 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 requester source_ip_address request_id amzn-s3-demo-bucket Finance/statement1.pdf 80e737d8b4d82f776affffffffffffffff006737d8b4d82f776a00000000000000000000000000000000000000000000000072 CREATE 2024-11-15 23:26:44.899 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} 111122223333 192.0.2.1 CVK8FWYRW0M9JW65 amzn-s3-demo-bucket s3-dg.pdf 80e737d8b4e39f1dbdffffffffffffffff006737d8b4e39f1dbd00000000000000000000000000000000000000000000000072 CREATE 2024-11-15 23:26:44.942 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 {} {} 111122223333 192.0.2.1 CVKAQDRAZEG7KXAY amzn-s3-demo-bucket Development/Projects.xls 80e737d8b4ed9ac5c6ffffffffffffffff006737d8b4ed9ac5c600000000000000000000000000000000000000000000000072 CREATE 2024-11-15 23:26:44.966 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} 111122223333 192.0.2.1 CVK7Z6XQTQ90BSRV

元数据表具有以下架构:

列名称 必填? 数据类型

bucket

字符串 通用存储桶名称。有关更多信息,请参阅 通用存储桶命名规则

key

字符串 在存储桶中唯一地标识对象的对象键名称(或键)。有关更多信息,请参阅 为 Amazon S3 对象命名

sequence_number

字符串

序列号,它是一个序数,包含在给定对象的记录中。要对相同存储桶和键的记录进行排序,您可以按 sequence_number 进行排序。对于给定的存储桶和键,按字典顺序排列的较大 sequence_number 值意味着该记录是更近被引入存储桶的。

record_type

字符串

此记录的类型,为以下值之一:CREATEUPDATE_METADATADELETE

CREATE 记录表明已将新对象(或对象的新版本)写入存储桶。

UPDATE_METADATA 记录捕获对现有对象的可变元数据(例如存储类或标签)的更改。

DELETE 记录表明此对象(或该对象的此版本)已被删除。启用版本控制后,DELETE 记录代表删除标记或永久删除。删除标记的 record_type 值为 DELETEis_delete_marker 值为 True。永久删除记录在除 bucketkeysequence_numberrecord_typerecord_timestampversion_id 之外的所有其它列中都有 null 值。有关更多信息,请参阅 从启用了版本控制的存储桶中删除对象版本

record_timestamp

时间戳 NTZ(无时区)

与此记录关联的时间戳。

version_id

字符串

对象的版本 ID。在存储桶上启用版本控制后,Amazon S3 会为添加到存储桶的对象指定版本号。有关更多信息,请参阅 使用 S3 版本控制保留对象的多个版本

在您设置版本控制状态之前存储在存储桶中的对象的版本 ID 为 null。

is_delete_marker

布尔值

对象的删除标记状态。如果对象是删除标记,则此值为 True。否则为 False。有关更多信息,请参阅 使用删除标记

注意

为删除标记添加的行的 record_type 值为 DELETE,而不是 UPDATE_METADATA。如果删除标记是因为 S3 生命周期到期而创建的,则 requester 值为 s3.amazonaws.com

size

长整型

以字节为单位的对象大小,不包括未完成的分段上传或对象元数据的大小。如果 is_delete_markerTrue,则大小为 0。有关更多信息,请参阅 系统定义的对象元数据

last_modified_date

时间戳 NTZ(无时区)

对象创建日期或上次修改日期(以较晚者为准)。对于分段上传,对象创建日期是开始分段上传的日期。有关更多信息,请参阅 系统定义的对象元数据

e_tag

字符串

实体标签(ETag),这是对象的哈希。ETag 仅反映对于对象的内容的更改,而不反映对于对象的元数据的更改。ETag 可能是对象数据的 MD5 摘要。ETag 是否为 MD5 摘要取决于对象的创建方式及其加密方式。有关更多信息,请参阅《Amazon S3 API 参考》中的 Object

storage_class

字符串

用于存储对象的存储类。以下值之一:STANDARDREDUCED_REDUNDANCYSTANDARD_IAONEZONE_IAINTELLIGENT_TIERINGGLACIERDEEP_ARCHIVEGLACIER_IR。有关更多信息,请参阅 了解和管理 Amazon S3 存储类

is_multipart

布尔值

对象的上传类型。如果对象以分段上传形式上传,则此值为 True。否则为 False。有关更多信息,请参阅 在 Amazon S3 中使用分段上传来上传和复制对象

encryption_status

字符串

对象的服务器端加密状态,具体取决于使用哪种加密密钥:具有 Amazon S3 托管式密钥的服务器端加密(SSE-S3)、具有 Amazon Key Management Service(Amazon KMS)密钥的服务器端加密(SSE-KMS)、具有 Amazon KMS keys的双层服务器端加密(DSSE-C)或具有客户提供的密钥的服务器端加密(SSE-C)。如果对象未加密,则此值为 null。可能的值为 SSE-S3SSE-KMSDSSE-KMSSSE-C 或 null。有关更多信息,请参阅 利用加密来保护数据

is_bucket_key_enabled

布尔值

对象的 S3 存储桶密钥启用状态。如果对象将 S3 存储桶密钥用于 SSE-KMS,则此值为 True。否则为 False。有关更多信息,请参阅 在对象级别配置 S3 存储桶密钥

kms_key_arn

字符串

用于加密对象的 KMS 密钥的 Amazon 资源名称(ARN),适用于 encryption_statusSSE-KMSDSSE-KMS 的行。如果对象未使用 SSE-KMS 或 DSSE-KMS 进行加密,则值为 null。有关更多信息,请参阅使用具有 Amazon KMS 密钥的服务器端加密(SSE-KMS)使用具有 Amazon KMS 密钥的双层服务器端加密(DSSE-KMS)

注意

如果某行代表的对象版本在处理删除或覆盖事件时不再存在,则即使 encryption_status 列的值为 SSE-KMSDSSE-KMSkms_key_arn 也将包含 null 值。

checksum_algorithm

字符串

用于为对象创建校验和的算法,为以下值之一:CRC64-NVMECRC32CRC32CSHA1SHA256。如果不存在校验和,则此值为 null。有关更多信息,请参阅 使用支持的校验和算法

object_tags

Map <String, String>

与对象关联的对象标签。对象标签存储为键值对的映射。如果对象没有对象标签,则会存储空映射 ({})。有关更多信息,请参阅 使用标签对存储进行分类

注意

如果 record_type 值为 DELETE,则 object_tags 列包含 null 值。如果 record_type 值为 CREATEUPDATE_METADATA,则表示在处理删除或覆盖事件时已不再存在的对象版本的行在 object_tags 列中将包含 null 值。

user_metadata

Map <String, String>

与对象关联的用户元数据。用户元数据存储为键值对的映射。如果对象没有用户元数据,则会存储空映射 ({})。有关更多信息,请参阅 用户定义的对象元数据

注意

如果 record_type 值为 DELETE,则 user_metadata 列包含 null 值。如果 record_type 值为 CREATEUPDATE_METADATA,则表示在处理删除或覆盖事件时已不再存在的对象版本的行在 user_metadata 列中将包含 null 值。

requester

字符串

提出请求的请求者或 Amazon Web Services 服务 主体的 Amazon Web Services 账户 ID。

source_ip_address

字符串

请求的源 IP 地址。对于由用户请求生成的记录,此列包含请求的源 IP 地址。对于 Amazon S3 或其它 Amazon Web Services 服务 代表用户采取的操作,此列包含 null 值。

request_id

字符串

与请求关联的请求 ID。