您可以通过桶清单功能,定期获取桶内指定对象的相关信息,并保存到指定的存储桶中。本文介绍桶清单的使用场景及操作步骤。
您可以通过桶清单功能,定期获取固定存储桶内所有或者指定前缀的对象信息,清单内容包括对象大小、存储类型、最后更新日期、Etag、分片上传状态及加密状态等。
如果您需要列举的对象较多,建议您优先使用桶清单功能。
TosArchiveTOSInventory
角色,您可以登录 IAM 控制台查看。注意
如果您因为业务需求设置了桶策略或 IAM 策略,请注意以下生成桶清单相关的 Action 没有被 Deny,否则可能会导致桶清单生成失败:
TosArchiveTOSInventory
角色默认没有访问 KMS 密钥的权限,如果您的存储桶配置了 SSE-KMS 桶默认加密规则,创建桶清单前,您需要授予该角色 KMSCryptoUserAccess
的权限,否则将无法生成桶清单。创建桶清单后,TOS 会按照设置的参数生成对应清单。清单文件的名称如下所示。
destinationPrefix/sourceBucketName/inventoryId/YYYY-MM-DDTHH-MMZ/files/UUID.csv.gz dest_bucket └──destinationPrefix/ └──sourceBucketName/ └──inventoryId/ ├──YYYY-MM-DDTHH-MMZ/ ├──files/ ├──7fd76a1c421391260a481a3405c6****_0.csv.gz ├──7fd76a1c421391260a481a3405c6****_1.csv.gz .... ├──manifest.json ├──manifest.checksum
参数说明如下。
参数 | 说明 |
---|---|
destinationPrefix/ | 创建桶清单时设置的报告前缀。如果创建时未设置,则默认为 |
sourceBucketName/ | 清单文件对应的源存储桶。 |
inventoryId/ | 桶清单规则名称。 |
YYYY-MM-DDTHH-MMZ/ | 生成清单文件时,开始扫描存储对象的时间信息,UTC 时间,格式为 说明 在该时间之后上传的对象,不会记录在清单文件中。 |
files/ | 保存对象清单文件的目录,默认为 说明
|
manifest.json | 保存清单文件元数据及其他信息的文件。详细说明,请参见 manifest.json。 |
manifest.checksum | manifest.json 文件的 MD5 校验信息,例如 |
manifest.json
文件示例及说明如下。
{ "creationTimestamp":"1672682400", "sourceBucket":"srctest", "destinationBucket":"destest", "fileFormat":"CSV", "fileSchema":"BucketName,ObjKey,Size,ETag,StorageClass,LastModifiedDate,IsMultipartUploaded,EncryptionStatus", "version":"2022-11-14", "files":[{ "Key":"tos_bucket_inventory/destest/srctest/2023-01-03T02:00Z/files/7fd76a1c421391260a481a3405c6****_0.csv.gz", "Size":619, "MD5checksum":"79b1e0cbe3af7fdf127b91af601b****", "InventoriedRecord":17 }] }
参数 | 说明 | |
---|---|---|
creationTimestamp | Unix 时间戳,计量单位为秒,表示开始扫描源存储桶的时间。 | |
sourceBucket | 清单文件对应的源存储桶。 | |
destinationBucket | 存储清单文件的目的桶。 | |
fileFormat | 清单文件的格式,默认为 | |
fileSchema | 清单文件包含的对象信息。详细说明,请参见 fileSchema。 | |
version | 清单文件的版本号。 | |
files | Key | 清单文件的完整路径及名称。 |
Size | 清单文件大小,单位为 Byte。 | |
MD5checksum | 清单文件的 MD5 校验信息。 | |
InventoriedRecord | 清单文件中包含的记录数量。 |
fileSchema 文件示例如下。
fileSchema 文件不包含参数名称,图中参数名称仅供参考,详细参数说明如下:
参数 | 是否可选 | 说明 |
---|---|---|
BucketName | 必选 | 清单文件对应的源存储桶名称。 |
ObjKey | 必选 | 存储桶中对象的名称。 说明 对象名称采用 URL 编码,您必须解码后方可使用。 |
VersionId | 必选 | 对象的版本 ID。 说明 仅当存储桶开启版本控制功能,且创建桶清单时对象版本选择所有版本时,才会导出该信息。 |
IsLatest | 必选 | 对象版本是否为最新版本。取值说明如下:
说明 仅当存储桶开启版本控制功能,且创建桶清单时对象版本选择所有版本时,才会导出该信息。 |
IsDeleteMarker | 必选 | 对象版本是否为删除标记。取值说明如下:
说明 仅当存储桶开启版本控制功能,且创建桶清单时对象版本选择所有版本时,才会导出该信息。 |
Size | 可选 | 对象大小,单位为字节。 |
ETag | 可选 | 对象的 ETag。 |
StorageClass | 可选 | 对象的存储类型。取值说明如下:
|
LastModifiedDate | 可选 | 对象的最后更新日期,Unix 时间戳格式,计量单位为秒。 |
IsMultipartUploaded | 可选 | 对象的分片上传状态。取值说明如下:
|
EncryptionStatus | 可选 | 对象的加密状态。取值说明如下:
|
CRC64 | 可选 | 对象的 CRC64 值,常用于数据一致性的校验。更多信息,请参见校验数据一致性概述。 |
ReplicationStatus | 可选 | 对象的跨区域复制或同区域复制状态,存在以下情况:
说明 查看跨区域复制和同区域复制源对象的复制状态功能目前处于邀测状态,如您需要使用该功能,请联系客户经理。
|
限制项 | 说明 |
---|---|
计费 | 使用桶清单时,需要收取 API 请求费用和清单文件的存储容量费用。计费详情,请参见计费概述。 |
桶清单数量 | 每个存储桶最多可以配置 10 条桶清单。 |
桶清单参数 |
|
对象数量 | 桶清单支持每日或者每周导出,建议您根据对象数量合理设置导出周期。
|
修改桶清单 | 如果您在桶清单任务执行过程中修改了桶清单规则,根据修改的内容会产生不同的结果,说明如下:
建议您在桶清单任务执行完成,即生成 manifest.json 文件后,再修改桶清单配置,避免当天清单文件出现非预期结果。 |
其他 |
|
登录对象存储控制台。
单击左侧导航栏的桶列表,在桶列表页面单击目标桶名称。
选择左侧导航栏中的基础设置 > 桶清单。
在桶清单页面,单击创建清单。
在创建桶清单页面,设置如下参数。
参数 | 说明 |
---|---|
状态 | 选择桶策略的状态,支持启用和禁用。 |
规则名称 | 设置规则名称,命名规范如下:
|
目标存储桶 | 选择存储清单文件的目标桶。 注意
|
清单报告前缀 | 设置前缀后,清单生成后,您的清单报告将投递至目标存储桶的相应路径下,如果不设置,则默认为
说明 清单文件的格式详情,请参见上文的文件格式。 |
报告导出周期 | 选择报告导出的周期,可选每日或者每周。 说明 如果您选择的对象较多,建议您选择每周导出报告。 |
对象版本 | 选择需要导出的对象版本,可选当前版本或者所有版本。 说明 仅开启了版本控制的存储桶需要选择该参数。 |
过滤设置 | 选择清单文件的过滤信息,说明如下:
|
设置完成后,单击确定。