|
| 1 | +// |
| 2 | +// QCloudPostBucketInventoryRequest.h |
| 3 | +// QCloudPostBucketInventoryRequest |
| 4 | +// |
| 5 | +// Created by tencent |
| 6 | +// Copyright (c) 2015年 tencent. All rights reserved. |
| 7 | +// |
| 8 | +// ██████╗ ██████╗██╗ ██████╗ ██╗ ██╗██████╗ ████████╗███████╗██████╗ ███╗ ███╗██╗███╗ ██╗ █████╗ ██╗ ██╗ █████╗ |
| 9 | +// ██████╗ |
| 10 | +// ██╔═══██╗██╔════╝██║ ██╔═══██╗██║ ██║██╔══██╗ ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║████╗ ██║██╔══██╗██║ ██║ ██╔══██╗██╔══██╗ |
| 11 | +// ██║ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ █████╗ ██████╔╝██╔████╔██║██║██╔██╗ ██║███████║██║ ██║ ███████║██████╔╝ |
| 12 | +// ██║▄▄ ██║██║ ██║ ██║ ██║██║ ██║██║ ██║ ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║██║╚██╗██║██╔══██║██║ ██║ ██╔══██║██╔══██╗ |
| 13 | +// ╚██████╔╝╚██████╗███████╗╚██████╔╝╚██████╔╝██████╔╝ ██║ ███████╗██║ ██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║███████╗ ███████╗██║ |
| 14 | +// ██║██████╔╝ |
| 15 | +// ╚══▀▀═╝ ╚═════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═════╝ |
| 16 | +// |
| 17 | +// |
| 18 | +// _ __ _ _ |
| 19 | +// (_) / _| | | | | |
| 20 | +// ___ ___ _ ____ ___ ___ ___ | |_ ___ _ __ __| | _____ _____| | ___ _ __ ___ _ |
| 21 | +// __ ___ |
| 22 | +// / __|/ _ \ '__\ \ / / |/ __/ _ \ | _/ _ \| '__| / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ |
| 23 | +// '__/ __| |
| 24 | +// \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ |
| 25 | +// | \__ |
| 26 | +// |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ |
| 27 | +// \___|_| |___/ |
| 28 | +// ______ ______ ______ ______ ______ ______ ______ ______ | | |
| 29 | +// |______|______|______|______|______|______|______|______| |_| |
| 30 | +// |
| 31 | + |
| 32 | +#import <Foundation/Foundation.h> |
| 33 | +#import <QCloudCore/QCloudCore.h> |
| 34 | +@class QCloudInventoryConfiguration; |
| 35 | +NS_ASSUME_NONNULL_BEGIN |
| 36 | +/** |
| 37 | +
|
| 38 | + 用于存储桶创建一个一次性清单任务 |
| 39 | +
|
| 40 | + ### 功能说明 |
| 41 | +
|
| 42 | + COS 支持在每个存储桶中创建最多1000条清单任务。 |
| 43 | +
|
| 44 | + POST Bucket inventory 可以对一个存储桶创建一个一次性清单任务。区别于 PUT Bucket inventory,这个清单任务创建后将立即开始执行,每个任务只会执行一次,而不会周期性地重复执行。通过使用此功能,您能够更加灵活地获取到存储桶的对象清单,进而更精细化地管理对象。 |
| 45 | +
|
| 46 | + 关于在存储桶中创建清单任务接口的具体描述,请查看 https://cloud.tencent.com/document/product/436/83382 |
| 47 | +
|
| 48 | + ### 示例 |
| 49 | +
|
| 50 | + @code |
| 51 | +
|
| 52 | + QCloudPostBucketInventoryRequest *putReq = [QCloudPostBucketInventoryRequest new]; |
| 53 | +
|
| 54 | + // 存储桶名称,格式为 BucketName-APPID |
| 55 | + putReq.bucket= @"examplebucket-1250000000"; |
| 56 | +
|
| 57 | + // 清单任务的名称 |
| 58 | + putReq.inventoryID = @"list1"; |
| 59 | +
|
| 60 | + // 用户在请求体中使用 XML 语言设置清单任务的具体配置信息。配置信息包括清单任务分析的对象, |
| 61 | + // 分析的频次,分析的维度,分析结果的格式及存储的位置等信息。 |
| 62 | + QCloudInventoryConfiguration *config = [QCloudInventoryConfiguration new]; |
| 63 | +
|
| 64 | + // 清单的名称,与请求参数中的 id 对应 |
| 65 | + config.identifier = @"list1"; |
| 66 | +
|
| 67 | + // 清单是否启用的标识: |
| 68 | + // 如果设置为 true,清单功能将生效 |
| 69 | + // 如果设置为 false,将不生成任何清单 |
| 70 | + config.isEnabled = @"True"; |
| 71 | +
|
| 72 | + // 描述存放清单结果的信息 |
| 73 | + QCloudInventoryDestination *des = [QCloudInventoryDestination new]; |
| 74 | +
|
| 75 | + QCloudInventoryBucketDestination *btDes =[QCloudInventoryBucketDestination new]; |
| 76 | +
|
| 77 | + // 清单分析结果的文件形式,可选项为 CSV 格式 |
| 78 | + btDes.cs = @"CSV"; |
| 79 | +
|
| 80 | + // 存储桶的所有者 ID |
| 81 | + btDes.account = @"1278687956"; |
| 82 | +
|
| 83 | + // 存储桶名称,格式为 BucketName-APPID |
| 84 | + btDes.bucket = @"qcs::cos:ap-guangzhou::examplebucket-1250000000"; |
| 85 | +
|
| 86 | + // 清单分析结果的前缀 |
| 87 | + btDes.prefix = @"list1"; |
| 88 | +
|
| 89 | + // COS 托管密钥的加密方式 |
| 90 | + QCloudInventoryEncryption *enc = [QCloudInventoryEncryption new]; |
| 91 | + enc.ssecos = @""; |
| 92 | +
|
| 93 | + // 为清单结果提供服务端加密的选项 |
| 94 | + btDes.encryption = enc; |
| 95 | +
|
| 96 | + // 清单结果导出后存放的存储桶信息 |
| 97 | + des.bucketDestination = btDes; |
| 98 | +
|
| 99 | + // 描述存放清单结果的信息 |
| 100 | + config.destination = des; |
| 101 | +
|
| 102 | + // 配置清单任务周期 |
| 103 | + QCloudInventorySchedule *sc = [QCloudInventorySchedule new]; |
| 104 | +
|
| 105 | + // 清单任务周期,可选项为按日或者按周,枚举值:Daily、Weekly |
| 106 | + sc.frequency = @"Daily"; |
| 107 | + config.schedule = sc; |
| 108 | + QCloudInventoryFilter *fileter = [QCloudInventoryFilter new]; |
| 109 | + fileter.prefix = @"myPrefix"; |
| 110 | + config.filter = fileter; |
| 111 | + config.includedObjectVersions = QCloudCOSIncludedObjectVersionsAll; |
| 112 | + QCloudInventoryOptionalFields *fields = [QCloudInventoryOptionalFields new]; |
| 113 | +
|
| 114 | + fields.field = @[ @"Size", |
| 115 | + @"LastModifiedDate", |
| 116 | + @"ETag", |
| 117 | + @"StorageClass", |
| 118 | + @"IsMultipartUploaded", |
| 119 | + @"ReplicationStatus"]; |
| 120 | +
|
| 121 | + // 设置清单结果中应包含的分析项目 |
| 122 | + config.optionalFields = fields; |
| 123 | + putReq.inventoryConfiguration = config; |
| 124 | + [putReq setFinishBlock:^(id outputObject, NSError *error) { |
| 125 | + // 可以从 outputObject 中获取 response 中 etag 或者自定义头部等信息 |
| 126 | + NSDictionary * result = (NSDictionary *)outputObject; |
| 127 | +
|
| 128 | + }]; |
| 129 | + [[QCloudCOSXMLService defaultCOSXML] PostBucketInventory:putReq]; |
| 130 | +
|
| 131 | +*/ |
| 132 | +@interface QCloudPostBucketInventoryRequest : QCloudBizHTTPRequest |
| 133 | +/** |
| 134 | +说明日志记录配置的状态 |
| 135 | +*/ |
| 136 | +@property (strong, nonatomic) QCloudInventoryConfiguration *inventoryConfiguration; |
| 137 | + |
| 138 | +/** |
| 139 | + 清单任务的名称。缺省值:None;合法字符:a-z,A-Z,0-9,-,_,. |
| 140 | + */ |
| 141 | + |
| 142 | +@property (strong, nonatomic) NSString *inventoryID; |
| 143 | +/** |
| 144 | +存储桶名 |
| 145 | +*/ |
| 146 | +@property (strong, nonatomic) NSString *bucket; |
| 147 | + |
| 148 | +@end |
| 149 | +NS_ASSUME_NONNULL_END |
0 commit comments