清单是帮助用户管理存储空间对象的功能。用于周期性的(每天/每周)为Bucket中的对象(全部或部分)生成一份特定格式的列表文件(目前支持CSV 格式的文件),并将该文件存储到指定的Bucket中,并且可以有计划地取代对象存储同步 List API 操作。
基于对象清单,用户可以完成一些业务统计或者批量操作;可以在一个Bucket中配置多个清单任务,来满足不同维度的业务需求。
清单文件中会列出存储的对象及其对应的元数据,并根据用户的配置信息,记录用户所需的对象属性信息。在清单任务执行过程中并不会直接读取对象内容,仅扫描对象元数据等属性信息。
清单生成周期为每天或每周,从清单配置创建之日起,在指定的生成周期天数后生成清单列表文件。如果是每周一次,则在初始报告后每七天生成一份报告。
本部分介绍如何设置清单,包括有关清单源存储空间和目标存储空间的详细信息。
由清单列出其对象的存储空间称为源存储空间。在其中存储清单列表文件的存储空间称为目标存储空间。在配置清单前,我们先了解两个概念:
源存储空间
即想要开通清单功能的存储空间。清单列出了源存储空间中存储的对象,您可以获取整个存储空间的清单列表或按 (对象键名) 前缀筛选过的清单列表。
源存储空间:
目标存储空间
即存储清单的存储空间。清单列表文件将被写入目标存储空间,要对目标存储空间内公共位置中的所有清单列表文件进行分组,您可以在清单配置中指定目标 (对象键名) 前缀。
目标存储空间:
清单将帮助您按预定的计划创建存储空间中的对象的列表,由此管理存储。您可以为存储空间配置多个清单列表。清单列表将发布到目标存储空间中的 CSV文件
1.指定源存储空间中待分析的对象信息
确定需要分析哪些对象信息。因此,在配置清单功能时,需要在源存储空间中配置以下信息:
2.配置清单报告的存储信息
指定目标存储空间的存储空间策略,是每天还是每周生成一次清单报告列表,清单报告要存储至哪个存储空间中,需要配置信息如下:
清单列表文件包含源存储空间中对象的列表以及每个对象的元数据。清单列表将在目标存储空间中存储为使用 GZIP 压缩的 CSV 格式文件。
清单列表包含存储空间中的对象的列表以及每个列出的对象的以下元数据:
您可以参见下方通清单功能【控制台操作指南】,了解如何通过控制台配置清单功能。
您可以参见以下 API 文档了解如何通过 API 配置清单功能:
清单报告及相关的 Manifest 相关文件会发布在目标存储空间中,其中清单报告会发布在以下路径:
destination-prefix/source-bucket/config-ID/
Manifest 相关文件将发布到目标存储空间中的以下位置:
destination-prefix/source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.json destination-prefix/source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.checksum destination-prefix/source-bucket/config-ID/hive/dt=YYYY-MM-DD-HH-MM/symlink.txt
清单列表每天或每周发布到目标存储空间中的以下位置:
destination-prefix/source-bucket/config-ID/data/example-file-name.csv.gz
路径中所代表的含义如下:
其中,Manifest 相关文件总共包含两份文件 manifest.json 和 manifest.checksum。
有关 Manifest 文件的介绍如下:
什么是清单Manifest?
Manifest 文件 manifest.json 和 symlink.txt 描述清单报告的位置。每次交付新的清单报告时,均会带有一组新的 Manifest 文件。 |
以下是 CSV 格式清单的 manifest.json 文件中的 Manifest 示例:
{ "sourceBucket": "example-source-bucket", "destinationBucket": "example-inventory-destination-bucket", "fileFormat": "CSV", //"version": "2016-11-30", "creationTimestamp": "1514944800000", "fileSchema": "Bucket, Key, VersionId, Size, LastModifiedDate, ETag, StorageClass, IsMultipartUploaded, ReplicationStatus", "files": [ { "key": "Inventory/example-source-bucket/2016-11-06T21-32Z/files/04d73d9debc73d9f0bf85af461abde6c.csv.gz", "size": 21999232, "MD5checksum": "7d40288a09c25b302ad6cb5fced54f35" } ] }
清单报告提供了新对象和覆盖的 PUT 的最终一致性,并提供了 DELETE 的最终一致性。清单列表是存储空间项的滚动快照,这些项最终是一致的 (即,列表可能不包含最近添加或删除的对象)。例如,当在执行用户配置的清单任务的过程中时,用户执行了上传或删除对象的操作,则这些操作的结果可能不被反映在清单报告中。
如果您需要在对象执行操作之前验证对象的状态,我们建议您执行 HEAD Object API 请求来检索对象的元数据,或在对象存储控制台中检查对象属性。
OSS清单提供您的对象和元数据的平面文件列表,该列表将有计划地取代 OSS 同步 List API 操作。OSS 清单每天或每周为存储空间或共享前缀的对象(即,其名称以相同字符串开头的对象)提供用于列出您的对象及其对应元数据的逗号分隔值 (CSV)。
在授予 OSS 写入权限的目标存储空间上创建存储空间权限策略。这样,OSS就能够将清单报告的数据写入存储空间。
如果您在其他账户中选择了目标存储空间,而没有权限读取和写入存储空间策略,则您会看到以下消息:‘保存失败,无法在目标Bucket上创建Bucket策略。请联系目标Bucket 拥有者添加相关Bucket 策略,允许该账号在Bucket中放置数据’。在这种情况下,目标存储空间拥有者必须将显示的存储空间策略添加到目标存储空间中。如果策略未添加到目标存储空间中,则您不会获得清单报告,因为 源存储空间所有者 无权写入目标存储空间。