最近更新时间:2023-04-23 10:06:34
用户可以使用对象存储KS3 的存储清单功能获取存储空间(Bucket)中指定文件(Object)的数量、大小、存储类型、加密状态等信息。相对于GetBucket (ListObjects)接口,在海量文件的列举场景中,建议优先使用存储清单功能。
注意:为避免影响KS3-HDFS服务的正常使用或者引发数据污染的风险,开通了KS3-HDFS服务的Bucket 尽量不要设置为存储清单规则的目标Bucket。
清单任务配置完成后,KS3会按清单规则指定的导出周期生成清单文件。清单文件的目录结构如下所示:
destination-Bucket
└──destination-prefix/
└──src_bucket/
└──inventory_name/
├──YYYY-MM-DDTHH-MMZ/
│ ├──manifest.json
│ └──manifest.checksum
└──data/
├──inventory-1.csv.gz
├──inventory-2.csv.gz
└──inventory-3.csv.gz
目录 | 说明 |
---|---|
destination-prefix/ | 该目录根据设置的清单报告名前缀生成,如果清单报告名前缀设置为空,将省略该目录。 |
src_bucket/ | 该目录根据配置清单报告的源Bucket名称生成。 |
inventory_name/ | 该目录根据清单任务的名称生成 。 |
YYYY-MM-DDTHH-MMZ// |
|
data/ | 该目录下存放了清单文件,清单文件格式为使用GZIP压缩的CSV文件。 |
文件名称 csv.gz |
|
清单功能生成的具体文件如下:
manifest文件包含manifest.json 和 manifest.chenksum,详细说明如下:
1. manifest.json:提供了有关清单的元数据和其他基本信息。
{
"creationTimestamp": "1642994594",
"destinationBucket": "example-dest-bucket",
"fileFormat": "CSV",
"fileSchema": "Bucket, Key, Size, StorageClass, LastModifiedDate, ETag, IsMultipartUploaded, EncryptionStatus",
"listObjectCount": "12",
"listStorageSize": "7212835",
"filterObjectCount": "13",
"filterStorageSize": "7212835",
"files": [
{
"MD5checksum": "F77449179760C3B13F1E76110F07****",
"key": "example-dest-bucket/example-inventory/data/a1574226b5e540ee91df356845777c04-1.csv.gz",
"size": "2046"},
{
"MD5checksum": "F77449179760C3B13F1E76110F07****",
"key": "example-dest-bucket/example-inventory/data/a1574226b5e540ee91df356845777c04-2.csv.gz",
"size": "2046"}],
"sourceBucket": "example-src-bucket",
"version": "2022-12"}
各字段详细说明如下:
字段名称 | 描述 | 示例 |
---|---|---|
creationTimestamp | 时间戳,显示开始扫描源Bucket的时间 单位:ms |
1680071580356 |
destinationBucket | 存储清单文件的目标Bucket | example-dest-bucket |
fileFormat | 清单文件的格式 | CSV |
fileSchema | 清单文件包含的字段 | Bucket, Key, Size, StorageClass, LastModifiedDate, ETag, IsMultipartUploaded, EncryptionStatus |
listObjectCount | 扫描文件的数量 | 12 |
listStorageSize | 扫描文件的总大小 单位:Byte |
7212835 |
filterObjectCount | 符合要求被过滤的文件数量 | 12 |
filterStorageSize | 符合要求被过滤的文件总大小 单位:Byte |
7212835 |
files | 包含清单文件的文件名完整路径、大小、MD5值。如果存在多个清单文件,则包含多个清单文件信息组 |
|
sourceBucket | 配置清单规则的源Bucket | example-src-bucket |
version | 清单功能版本号 | 2022-12 |
2. manifest.checksum:包含manifest.json文件的MD5值,例如:F77449179760C3B13F1E76110F07****。
用户配置一项清单任务后,KS3 将根据配置定时扫描用户存储桶内指定的对象,并输出一份清单报告,清单报告支持 CSV 、Parquet、ORC格式文件。目前 KS3 清单报告中支持记录以下信息:
字段名称 | 说明 |
---|---|
Bucket | 执行清单任务的源Bucket名称 |
Key | Bucket中Object的名称。使用CSV文件时,Object名称使用URL编码,需要解码后进行查看 |
Size | Object大小 |
StorageClass | Object的存储类型 |
LastModifiedDate | Object的最后修改时间 |
ETag | Object的ETag,Object生成时会创建相应的ETag,用于标识一个Object的内容
|
IsMultipartUploaded | Object是否通过分片上传生成。如果是,则该字段值为True,否则为False |
EncryptionStatus | Object是否已加密。若Object已加密,则该字段值为True,否则为False |
开通说明
带宽流量说明
配置建议说明
清理清单文件说明
特殊情况说明
如果源Bucket没有任何文件,或清单任务设置的prefix没有匹配到任何文件,则不会生成清单文件。
导出清单文件的过程中,由于Object的创建、删除或覆盖等操作,可能会导致最终输出的清单列表中不一定包含所有的Object。最后修改时间早于manifest.json文件中creationTimestamp字段显示时间的Object会出现在清单文件中,最后修改时间晚于creationTimestamp字段显示时间的Object可能不会出现在清单文件中。
对于单个Bucket,通过KS3管理控制台最多可配置10条清单规则。
配置清单的源Bucket与存放清单文件的目标Bucket可以相同也可以不同,但是必须属于同一账号下的相同地域。
因ID/id为KS3保留字段,除通过API进行清单操作(Put/Get/Delete/List)时,请勿使用该字段作为业务参数。
使用Bucket清单功能会产生一定的费用,包含:
在删除清单规则前,KS3会按照清单规则持续生成清单文件,会产生一定的存储费用。为避免产生不必要的费用,请及时清理不再需要的清单文件。
纯净模式