QCloudPutBucketInventoryRequest Class Reference

Inherits from QCloudBizHTTPRequest
Declared in QCloudPutBucketInventoryRequest.h
QCloudPutBucketInventoryRequest.m

Overview

用于在存储桶中创建清单任务的方法

功能说明

COS 支持在每个存储桶中创建最多1000条清单任务。

您必须在目标存储桶中写入存储桶策略,以供 COS 将清单任务的结果文件写入该存储桶中。

调用该请求时,请确保您有足够的权限对存储桶的清单任务进行操作。存储桶所有者默认拥有该权限,若您无该项权限,请先向存储桶所有者申请该项操作的权限。

如果您指定了清单投递的前缀,COS 后端会自动在您指定的前缀后边加上/。如您指定了Prefix作为前缀,则 COS 后端投递的清单报告路径为Prefix/inventory_report。

关于在存储桶中创建清单任务接口的具体描述,请查看 https://cloud.tencent.com/document/product/436/33707.

示例

@code

QCloudPutBucketInventoryRequest *putReq = [QCloudPutBucketInventoryRequest new];

// 存储桶名称,格式为 BucketName-APPID
putReq.bucket= @"examplebucket-1250000000";

// 清单任务的名称
putReq.inventoryID = @"list1";

// 用户在请求体中使用 XML 语言设置清单任务的具体配置信息。配置信息包括清单任务分析的对象,
// 分析的频次,分析的维度,分析结果的格式及存储的位置等信息。
QCloudInventoryConfiguration *config = [QCloudInventoryConfiguration new];

// 清单的名称,与请求参数中的 id 对应
config.identifier = @"list1";

// 清单是否启用的标识:
// 如果设置为 true,清单功能将生效
// 如果设置为 false,将不生成任何清单
config.isEnabled = @"True";

// 描述存放清单结果的信息
QCloudInventoryDestination *des = [QCloudInventoryDestination new];

QCloudInventoryBucketDestination *btDes =[QCloudInventoryBucketDestination new];

// 清单分析结果的文件形式,可选项为 CSV 格式
btDes.cs = @"CSV";

// 存储桶的所有者 ID
btDes.account = @"1278687956";

// 存储桶名称,格式为 BucketName-APPID
btDes.bucket  = @"qcs::cos:ap-guangzhou::examplebucket-1250000000";

// 清单分析结果的前缀
btDes.prefix = @"list1";

// COS 托管密钥的加密方式
QCloudInventoryEncryption *enc = [QCloudInventoryEncryption new];
enc.ssecos = @"";

// 为清单结果提供服务端加密的选项
btDes.encryption = enc;

// 清单结果导出后存放的存储桶信息
des.bucketDestination = btDes;

// 描述存放清单结果的信息
config.destination = des;

// 配置清单任务周期
QCloudInventorySchedule *sc = [QCloudInventorySchedule new];

// 清单任务周期,可选项为按日或者按周,枚举值:Daily、Weekly
sc.frequency = @"Daily";
config.schedule = sc;
QCloudInventoryFilter *fileter = [QCloudInventoryFilter new];
fileter.prefix = @"myPrefix";
config.filter = fileter;
config.includedObjectVersions = QCloudCOSIncludedObjectVersionsAll;
QCloudInventoryOptionalFields *fields = [QCloudInventoryOptionalFields new];

fields.field = @[ @"Size",
                  @"LastModifiedDate",
                  @"ETag",
                  @"StorageClass",
                  @"IsMultipartUploaded",
                  @"ReplicationStatus"];

// 设置清单结果中应包含的分析项目
config.optionalFields = fields;
putReq.inventoryConfiguration = config;
[putReq setFinishBlock:^(id outputObject, NSError *error) {
    // 可以从 outputObject 中获取 response 中 etag 或者自定义头部等信息
    NSDictionary * result = (NSDictionary *)outputObject;

}];
[[QCloudCOSXMLService defaultCOSXML] PutBucketInventory:putReq];

  inventoryConfiguration

说明日志记录配置的状态

@property (strong, nonatomic) QCloudInventoryConfiguration *inventoryConfiguration

Declared In

QCloudPutBucketInventoryRequest.h

  inventoryID

清单任务的名称。缺省值:None;合法字符:a-z,A-Z,0-9,-,_,.

@property (strong, nonatomic) NSString *inventoryID

Declared In

QCloudPutBucketInventoryRequest.h

  bucket

存储桶名

@property (strong, nonatomic) NSString *bucket

Declared In

QCloudPutBucketInventoryRequest.h