QCloudOptionsObjectRequest.h 5.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. //
  2. // OptionsObject.h
  3. // OptionsObject
  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. NS_ASSUME_NONNULL_BEGIN
  28. /**
  29. COS 对象的跨域访问配置预请求的方法.
  30. 跨域访问配置的预请求是指在发送跨域请求之前会发送一个 OPTIONS 请求并带上特定的来源域,HTTP 方法 和 header 信息等给 COS,以决定是否可以发送真正的跨域请求. 当跨域访问配置不存在时,请求返回403 Forbidden. 跨域访问配置可以通过 putBucketCORS(PutBucketCORSRequest) 或者 putBucketCORSAsync(PutBucketCORSRequest, CosXmlResultListener) 方法来开启 Bucket 的跨域访问 支持.
  31. 关于COS 对象的跨域访问配置预请求接口的具体描述,请查看https://cloud.tencent.com/document/product/436/8288.
  32. cos iOS SDK 中发起COS 对象的跨域访问配置预请求的方法具体步骤如下:
  33. 1. 实例化 QCloudOptionsObjectRequest,填入需要设置的对象名、存储桶名、模拟跨域访问请求的 http 方法和模拟跨域访问允许的访问来源。
  34. 2. 调用 QCloudCOSXMLService 对象中的方法发出请求。
  35. 3. 从回调的 finishBlock 中的获取具体内容。
  36. 示例:
  37. @code
  38. QCloudOptionsObjectRequest* request = [[QCloudOptionsObjectRequest alloc] init];
  39. request.bucket =@"存储桶名";
  40. request.origin = @"*";
  41. request.accessControlRequestMethod = @"get";
  42. request.accessControlRequestHeaders = @"host";
  43. request.object = @"对象名";
  44. __block id resultError;
  45. [request setFinishBlock:^(id outputObject, NSError* error) {
  46. resultError = error;
  47. }];
  48. [[QCloudCOSXMLService defaultCOSXML] OptionsObject:request];
  49. @endcode
  50. */
  51. @interface QCloudOptionsObjectRequest : QCloudBizHTTPRequest
  52. /**
  53. 对象的key
  54. */
  55. @property (strong, nonatomic) NSString *object;
  56. /**
  57. 存储桶名
  58. */
  59. @property (strong, nonatomic) NSString *bucket;
  60. /**
  61. 模拟跨域访问的请求来源域名
  62. */
  63. @property (strong, nonatomic) NSString *origin;
  64. /**
  65. 模拟跨域访问的请求HTTP方法
  66. */
  67. @property (strong, nonatomic) NSString *accessControlRequestMethod;
  68. /**
  69. 模;模拟跨域访问的请求头部
  70. */
  71. @property (strong, nonatomic) NSString *accessControlRequestHeaders;
  72. @end
  73. NS_ASSUME_NONNULL_END