PUT Bucket inventory

最近更新时间:2024-01-12 11:52:21

我的收藏

功能描述

PUT Bucket inventory 用于在存储桶中创建清单任务,您可以对清单任务命名后,使用该请求创建清单任务,详细信息请参见 清单功能概述
注意
COS 支持在每个存储桶中创建最多1000条清单任务。
您必须在目标存储桶中写入存储桶策略,以供 COS 将清单任务的结果文件写入该存储桶中。
调用该请求时,请确保您有足够的权限对存储桶的清单任务进行操作。存储桶所有者默认拥有该权限,若您无该项权限,请先向存储桶所有者申请该项操作的权限。授权流程请参见 使用方法
如果您指定了清单投递的前缀,COS 后端会自动在您指定的前缀后边加上/。如您指定了Prefix作为前缀,则 COS 后端投递的清单报告路径为Prefix/inventory_report


授权说明

授权策略中 action 设置为 cos:PutBucketInventory 。查看所有 action

请求

请求示例

PUT /?inventory&id=inventory-configuration-ID HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String
Content-MD5: MD5
说明
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,可参阅 存储桶概览 > 基本信息存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,可参阅 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。

请求参数

调用 PUT Bucket inventory 需要使用清单任务名称的参数。该参数格式如下:
参数
描述
类型
是否必选
id
清单任务的名称。缺省值:None
合法字符:a-z,A-Z,0-9,-,_,.
String

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

用户在请求体中使用 XML 语言设置清单任务的具体配置信息。配置信息包括清单任务分析的对象,分析的频次,分析的维度,分析结果的格式及存储的位置等信息。
<InventoryConfiguration>
<Id>list1</Id>
<IsEnabled>true</IsEnabled>
<Destination>
<COSBucketDestination>
<Format>CSV</Format>
<AccountId>100000000001</AccountId>
<Bucket>qcs::cos:ap-guangzhou::examplebucket-1250000000</Bucket>
<Prefix>list1</Prefix>
<Encryption>
<SSE-COS></SSE-COS>
</Encryption>
</COSBucketDestination>
</Destination>
<Schedule>
<Frequency>Daily|Weekly|Monthly</Frequency>
<MonthlyDate></MonthlyDate>
</Schedule>
<Filter>
<Prefix>myPrefix</Prefix>
</Filter>
<IncludedObjectVersions>All</IncludedObjectVersions>
<OptionalFields>
<Field>Size</Field>
<Field>LastModifiedDate</Field>
<Field>ETag</Field>
<Field>StorageClass</Field>
<Field>IsMultipartUploaded</Field>
<Field>ReplicationStatus</Field>
<Field>Tag</Field>
<Field>Crc64</Field>
<Field>x-cos-meta-*</Field>
</OptionalFields>
</InventoryConfiguration>
具体的节点描述如下:
节点名
父节点
描述
类型
是否必选
InventoryConfiguration
包含清单的配置参数
Container
Id
InventoryConfiguration
清单的名称,与请求参数中的 id 对应
Container
IsEnabled
InventoryConfiguration
清单是否启用的标识:
如果设置为 true,清单功能将生效
如果设置为 false,将不生成任何清单
String
IncludedObjectVersions
InventoryConfiguration
是否在清单中包含对象版本:
如果设置为 All,清单中将会包含所有对象版本,并在清单中增加 VersionId,IsLatest,DeleteMarker 这几个字段
如果设置为 Current,则清单中不包含对象版本信息
String
Filter
InventoryConfiguration
筛选待分析对象。清单功能将分析符合 Filter 中设置的前缀的对象
Container
And
Filter
筛选待分析对象时,如果同时需要前缀与对象标签条件,需要用 And 包装
Container
Prefix
And
需要分析的对象的前缀
String
Tag
And
筛选待分析对象时,可以用对象标签(支持多个)作为过滤条件
Container
Period
Filter
需要分析的对象的创建时间范围
Container
StartTime
Period
需要分析的对象创建的起始时间,参数为秒级时间戳,如1568688761
String
EndTime
Period
需要分析的对象创建的结束时间,参数为秒级时间戳,如1568688762
String
OptionalFields
InventoryConfiguration
设置清单结果中应包含的分析项目
Container
Field
OptionalFields
清单结果中可选包含的分析项目名称,可选字段包括:SizeLastModifiedDateStorageClassETagIsMultipartUploadedReplicationStatusTagCrc64x-cos-meta-*
注意,如果筛选条件里使用了对象标签,在这里也必须添加 Tag
此外,也支持用户填写x-cos-meta-*形式的自定义头部,如x-cos-meta-testheader。清单会将相应的对象元数据输出,若对象不包含该元数据,则为空。
String
Schedule
InventoryConfiguration
配置清单任务周期
Container
Frequency
Schedule
清单任务周期,可选项为按日、按周或按月,枚举值:Daily、Weekly。其中,按月需要指定清单产出的日期
String
MonthlyDate
Schedule
如果清单任务周期选择了按月,需要明确指定清单产出的日期。支持填入 1~28 范围内的整数
Integer
Destination
InventoryConfiguration
描述存放清单结果的信息
Container
COSBucketDestination
Destination
清单结果导出后存放的存储桶信息
Container
Bucket
COSBucketDestination
清单分析结果的存储桶名
String
AccountId
COSBucketDestination
存储桶的所有者 UIN(主账号),例如100000000001。可在 账号信息 中查看
String
Prefix
COSBucketDestination
清单分析结果的前缀
String
Format
COSBucketDestination
清单分析结果的文件形式,可选项为 CSV 格式
String
Encryption
COSBucketDestination
为清单结果提供服务端加密的选项
Container
SSE-COS
Encryption
COS 托管密钥的加密方式,无需填充
Container

响应

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

该请求的响应体返回为空。

错误码

此接口遵循统一的错误响应和错误码,详情请参见 错误码 文档。

实际案例

案例一:添加指定了对象前缀的清单任务

请求

该示例向存储桶 examplebucket-1250000000中添加一条名为 list1 的清单任务。
该清单任务分析存储桶中前缀为 myPrefix 的对象及其所有版本。
分析频次为每天一次。
分析维度包括 Size , LastModifiedDate, StorageClass,ETag,IsMultipartUploaded, ReplicationStatus。
分析结果将以 CSV 格式文件存储在存储桶 examplebucket-1250000000 中,文件添加前缀 list1 且用 SSE-COS 加密。
PUT /?inventory&id=list1 HTTP/1.1
Date: Mon, 28 Aug 2018 02:53:38 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1503888878;1503889238&q-key-time=1503888878;1503889238&q-header-list=host&q-url-param-list=inventory&q-signature=254bf9cd3d6615e89a36ab652437f9d45c5f****
Content-MD5: AAq9nzrpsz5LJ4UEe1f6Q==
Host: examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com
Content-Length: 1024

<?xml version = "1.0" encoding = "UTF-8">
<InventoryConfiguration xmlns = "http://....">
<Id>list1</Id>
<IsEnabled>true</IsEnabled>
<Destination>
<COSBucketDestination>
<Format>CSV</Format>
<AccountId>100000000001</AccountId>
<Bucket>qcs::cos:ap-guangzhou::examplebucket-1250000000</Bucket>
<Prefix>list1</Prefix>
<Encryption>
<SSE-COS></SSE-COS>
</Encryption>
</COSBucketDestination>
</Destination>
<Schedule>
<Frequency>Daily</Frequency>
</Schedule>
<Filter>
<Prefix>myPrefix</Prefix>
<Period>
<StartTime>1568688761</StartTime>
<EndTime>1568688762</EndTime>
</Period>
</Filter>
<IncludedObjectVersions>All</IncludedObjectVersions>
<OptionalFields>
<Field>Size</Field>
<Field>LastModifiedDate</Field>
<Field>ETag</Field>
<Field>StorageClass</Field>
<Field>IsMultipartUploaded</Field>
<Field>ReplicationStatus</Field>
</OptionalFields>
</InventoryConfiguration>

响应

上述请求后,COS 返回以下响应,表明该清单任务 list1 已经成功设置完毕。
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Date: Mon, 28 Aug 2018 02:53:38 GMT
Server: tencent-cos
x-cos-request-id: NTlhMzg1ZWVfMjQ4OGY3MGFfMWE1NF8****

案例二:添加指定了对象前缀和对象标签的清单任务

请求

该示例向存储桶examplebucket-1250000000中添加一条名为 list2 的清单任务。
该清单任务分析存储桶中前缀为 myPrefix ,且有对象标签含有{age:18}的对象及其所有版本。
分析频次为每天一次。
分析维度包括 Size ,LastModifiedDate,StorageClass,ETag,Tag。
分析结果将以 CSV 格式文件存储在存储桶 inventorybucket-1250000000 中。
PUT /?inventory&id=list2 HTTP/1.1
Date: Mon, 28 Aug 2018 02:53:38 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1503888878;1503889238&q-key-time=1503888878;1503889238&q-header-list=host&q-url-param-list=inventory&q-signature=254bf9cd3d6615e89a36ab652437f9d45c5f****
Content-MD5: AAq9nzrpsz5LJ4UEe1f6Q==
Host: examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com
Content-Length: 1024

<?xml version = "1.0" encoding = "UTF-8">
<InventoryConfiguration xmlns = "http://....">
<Id>list2</Id>
<IsEnabled>true</IsEnabled>
<Destination>
<COSBucketDestination>
<Format>CSV</Format>
<AccountId>100000000001</AccountId>
<Bucket>qcs::cos:ap-guangzhou::inventorybucket-1250000000</Bucket>
</COSBucketDestination>
</Destination>
<Schedule>
<Frequency>Daily</Frequency>
</Schedule>
<Filter>
<And>
<Prefix>myPrefix</Prefix>
<Tag>
<Key>age</Key>
<Value>18</Value>
</Tag>
</And>
</Filter>
<IncludedObjectVersions>All</IncludedObjectVersions>
<OptionalFields>
<Field>Size</Field>
<Field>LastModifiedDate</Field>
<Field>StorageClass</Field>
<Field>ETag</Field>
<Field>Tag</Field>
</OptionalFields>
</InventoryConfiguration>

响应

上述请求后,COS 返回以下响应,表明该清单任务 list2 已经成功设置完毕。
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Date: Mon, 28 Aug 2018 02:53:38 GMT
Server: tencent-cos
x-cos-request-id: NTlhMzg1ZWVfMjQ4OGY3MGFfMWE1NF8****

案例三:清单支持输出对象的自定义头部

请求

该示例向存储桶examplebucket-1250000000中添加一条名为 list3 的清单任务。
该清单任务分析存储桶中前缀为 myPrefix ,且有对象标签含有{age:18}的对象及其所有版本。
分析频次为每天一次。
分析维度包括 Size , LastModifiedDate, StorageClass,ETag,Tag,x-cos-meta-myheader。
分析结果将以 CSV 格式文件存储在存储桶 inventorybucket-1250000000 中。
PUT /?inventory&id=list2 HTTP/1.1
Date: Mon, 28 Aug 2018 02:53:38 GMT
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1503888878;1503889238&q-key-time=1503888878;1503889238&q-header-list=host&q-url-param-list=inventory&q-signature=254bf9cd3d6615e89a36ab652437f9d45c5f****
Content-MD5: AAq9nzrpsz5LJ4UEe1f6Q==
Host: examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com
Content-Length: 1024

<?xml version = "1.0" encoding = "UTF-8">
<InventoryConfiguration xmlns = "http://....">
<Id>list3</Id>
<IsEnabled>true</IsEnabled>
<Destination>
<COSBucketDestination>
<Format>CSV</Format>
<AccountId>100000000001</AccountId>
<Bucket>qcs::cos:ap-guangzhou::inventorybucket-1250000000</Bucket>
</COSBucketDestination>
</Destination>
<Schedule>
<Frequency>Daily</Frequency>
</Schedule>
<Filter>
<And>
<Prefix>myPrefix</Prefix>
<Tag>
<Key>age</Key>
<Value>18</Value>
</Tag>
</And>
</Filter>
<IncludedObjectVersions>All</IncludedObjectVersions>
<OptionalFields>
<Field>Size</Field>
<Field>LastModifiedDate</Field>
<Field>StorageClass</Field>
<Field>ETag</Field>
<Field>Tag</Field>
<Field>Crc64</Field>
<Field>x-cos-meta-myheader</Field>
</OptionalFields>
</InventoryConfiguration>

响应

上述请求后,COS 返回以下响应,表明该清单任务 list3 已经成功设置完毕。
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Date: Mon, 28 Aug 2018 02:53:38 GMT
Server: tencent-cos
x-cos-request-id: NTlhMzg1ZWVfMjQ4OGY3MGFfMWE1NF8****