对象存储OSS支持存储空间(Bucket)清单功能,可定期将您存储空间(Bucket)内文件(Object)的信息导出到指定的Bucket内,帮助您更好地了解Object的状态,简化并加速工作流和大数据作业任务等。

Bucket清单功能以每天或每周的间隔对您Bucket内的Object进行扫描,扫描完成后会生成CSV格式的清单报告,并存储到您指定的Bucket内。在清单报告中,您可以有选择地导出指定对象的元数据信息,如文件大小、加密状态等。
说明
  • 清单功能已在华北2(北京)、澳大利亚(悉尼)地域公测,其他地域将陆续开放,敬请期待。
  • 清单功能扫描Object时,仅扫描Object的元数据等信息,不会直接读取Object内容。

操作方式

操作方式 说明
控制台 Web应用程序,直观易用
命令行工具ossutil 命令行工具,性能好

功能说明

清单任务配置完成后,会按设置的清单报告导出周期生成清单报告,具体的存储目录树结构如下:
- dst_bucket/
 - destination-prefix/
   - src_bucket/
     - inventory_id/
       - YYYY-MM-DDTHH-MMZ/
         - manifest.json
         - manifest.checksum
       - data/
         - 745a29e3-bfaa-490d-9109-47086afcc8f2.csv.gz
       - hive/
         - dt=YYYY-MM-DDTHH-MMZ/
           - symlink.txt
  • destination-prefix/:该目录根据设置的清单报告名前缀生成,如果清单报告名前缀设置为空,将省略该目录,即变成dst_bucket/src_bucket/……
  • src_bucket/:该目录根据配置清单报告的源Bucket名生成。
  • inventory_id/:该目录根据清单任务的规则名称生成。
  • YYY-MM-DDTHH-MMZ/:该目录是标准的格林威治时间戳,表示开始扫描Bucket的时间,例如2020-05-17T16-00Z。该目录下包含了manifest.jsonmanifest.checksum文件。
  • data/:该目录下存放了具体的清单文件。
  • hive/:该目录存放了symlink.txt文件,方便用Apache Hive进行数据处理。
清单功能生成的具体文件如下:
  • 清单文件
    清单文件存储在data目录中,包含清单功能导出的文件信息。您可以通过manifest.json文件的fileSchema字段,来获取清单文件的字段列信息。包含所有字段列的清单文件从左到右分别为:Bucket、Key、VersionId、IsLatest、IsDeleteMarker、Size、LastModifiedDate、ETag、StorageClass、IsMultipartUploaded、EncryptionStatus。清单
    名称 描述
    Bucket 执行清单任务的源Bucket名称。
    Key Bucket中Object的名称,采用URL编码形式,必须解码查看。
    VersionId Object的版本ID。若Bucket已开启版本控制功能,您在配置清单规则时可以选择导出当前版本或所有版本。若配置只导出当前版本,则不存在该字段。版本控制功能介绍请参见版本控制介绍
    IsLatest 若Object有多个版本,且当前版本为最新版本,则该字段值为True,否则为False。若配置只导出最新版本,则不存在该字段。
    IsDeleteMarker 若Object有多个版本,且当前版本为删除标记,则该字段值为True,否则为False。若配置只导出最新版本,则不存在该字段。
    Size Object大小。
    LastModifiedDate Object的最后修改时间。
    ETag 对象生成时会创建相应的ETag (entity tag) ,用于标示一个对象的内容。
    • 通过PutObject接口创建的Object,ETag值是其内容的MD5值。
    • 通过其他方式创建的Object,ETag值是其内容的UUID。
    StorageClass Object的存储类型。
    IsMultipartUploaded 标记Object是否通过分片上传生成。如果是,则该字段值为True,否则为False
    EncryptionStatus Object的加密状态。若Object已加密,则该字段值为True,否则为False
  • manefist文件
    manefist文件包含manefist.jsonmanifest.checksum
    • manefist.json:提供了有关清单的元数据和其他基本信息,这些信息包括如下内容。
      • creationTimestamp:以纪元日期格式创建的时间戳,显示生成清单报告时开始扫描存储空间的时间。
      • destinationBucket:存储清单文件的目标Bucket。
      • fileFormat:清单文件的格式。
      • fileSchema:清单文件包含的字段。
      • files:包含清单文件的文件名、文件大小、MD5校验和。
      • sourceBucket:创建清单文件的源Bucket。
      • version:清单版本。
    • manifest.checksum:包含manifest.json文件的MD5。
  • symlink.txt文件

    存放在hive目录中,用于描述清单文件的位置,是一个与Apache Hive兼容的Manifest文件,使Hive能够自动发现清单文件及其关联的数据文件。

注意事项

  • 单个Bucket最多只能配置1000条清单规则,通过控制台最多可配置和展示10条清单规则。
  • 配置清单的源Bucket与存放导出的清单文件所在的目标Bucket必须位于同一个Region。
  • 若源Bucket内的文件非常多,例如Object数量超过10亿个,建议以周为单位生成清单文件;若Object的数量超过100亿,建议以周为单位,针对不同的文件前缀设置不同的清单任务,保证每个清单任务针对的文件不超过100亿个。
  • 若源Bucket没有任何文件,或设置了前缀,但该前缀没有匹配到任何Object,则不会生成清单文件。
  • 通过API、SDK、ossutil配置清单规则前需生成一个RAM角色,该角色拥有读取源Bucket所有文件和向目标Bucket写入文件的权限。配置角色的步骤请参见创建可信实体为阿里云服务的RAM角色
  • 通过OSS控制台配置清单规则会生成一个名为AliyunOSSRole角色,子账号配置清单任务时必须有调用该角色的权限。
  • 配置清单规则后,OSS会按照清单规则一直生成清单文件,直至您删除该规则。为避免清单文件占用您的存储空间,请及时清理不再需要的清单文件。