QCloudPutBucketReplicationRequest.h 5.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // PutBucketReplication.h
  3. // PutBucketReplication
  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. // \__ \ __/ | \ V /| | (_| __/ | || (_) | | | (_| | __/\ V / __/ | (_) | |_) | __/ | \__
  21. // |___/\___|_| \_/ |_|\___\___| |_| \___/|_| \__,_|\___| \_/ \___|_|\___/| .__/ \___|_| |___/
  22. // ______ ______ ______ ______ ______ ______ ______ ______ | |
  23. // |______|______|______|______|______|______|______|______| |_|
  24. //
  25. #import <Foundation/Foundation.h>
  26. #import <QCloudCore/QCloudCore.h>
  27. @class QCloudBucketReplicationConfiguation;
  28. NS_ASSUME_NONNULL_BEGIN
  29. /**
  30. 配置跨区域复制的方法.
  31. 跨区域复制是支持不同区域 Bucket 自动异步复制对象.注意,不能是同区域的 Bucket, 且源 Bucket 和目 标 Bucket 必须已启用版本控制putBucketVersioning(PutBucketVersioningRequest).
  32. cos iOS SDK 中配置跨区域复制的方法具体步骤如下:
  33. 1. 实例化 QCloudPutBucketReplicationRequest,填入需要的参数。
  34. 2. 调用 QCloudCOSXMLService 对象中的 PutBucketRelication 方法发出请求。
  35. 3. 从回调的 finishBlock 中的 outputObject 获取具体内容。
  36. 示例:
  37. @code
  38. QCloudPutBucketReplicationRequest* request = [[QCloudPutBucketReplicationRequest alloc] init];
  39. request.bucket = bucketName; //存储桶名称(cos v5 的 bucket格式为:xxx-appid, 如 test-1253960454)
  40. QCloudBucketReplicationConfiguation* configuration = [[QCloudBucketReplicationConfiguation alloc] init];
  41. configuration.role = [NSString identifierStringWithID:@"uin" :@"uin"];
  42. QCloudBucketReplicationRule* rule = [[QCloudBucketReplicationRule alloc] init];
  43. rule.identifier = @"identifier";
  44. rule.status = QCloudQCloudCOSXMLStatusEnabled;
  45. QCloudBucketReplicationDestination* destination = [[QCloudBucketReplicationDestination alloc] init];
  46. NSString* destinationBucket = @"destinationBucket";
  47. NSString* region = @"destinationRegion"
  48. destination.bucket = [NSString stringWithFormat:@"qcs:id/0:cos:%@:appid/%@:%@",@"region",@"appid",@"destinationBucket"];
  49. rule.destination = destination;
  50. configuration.rule = @[rule];
  51. request.configuation = configuration;
  52. [request setFinishBlock:^(id outputObject, NSError* error) {
  53. //设置完成回调
  54. }];
  55. [[QCloudCOSXMLService defaultCOSXML] PutBucketRelication:request];
  56. @endcode
  57. */
  58. @interface QCloudPutBucketReplicationRequest : QCloudBizHTTPRequest
  59. /**
  60. 说明所有跨区域配置信息
  61. */
  62. @property (strong, nonatomic) QCloudBucketReplicationConfiguation *configuation;
  63. /**
  64. 存储桶名称
  65. */
  66. @property (strong, nonatomic) NSString *bucket;
  67. @end
  68. NS_ASSUME_NONNULL_END