QNRequestTransaction.h 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. //
  2. // QNRequestTransaction.h
  3. // QiniuSDK
  4. //
  5. // Created by yangsen on 2020/4/30.
  6. // Copyright © 2020 Qiniu. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "QNUploadRegionInfo.h"
  10. NS_ASSUME_NONNULL_BEGIN
  11. @class QNUpToken, QNConfiguration, QNUploadOption, QNResponseInfo, QNUploadRegionRequestMetrics;
  12. typedef void(^QNRequestTransactionCompleteHandler)(QNResponseInfo * _Nullable responseInfo, QNUploadRegionRequestMetrics * _Nullable metrics, NSDictionary * _Nullable response);
  13. // 单个对象只能执行一个事务,多个事务需要创建多个事务对象完成
  14. @interface QNRequestTransaction : NSObject
  15. //MARK:-- 构造方法
  16. - (instancetype)initWithHosts:(NSArray <NSString *> *)hosts
  17. regionId:(NSString * _Nullable)regionId
  18. token:(QNUpToken *)token;
  19. //MARK:-- upload事务构造方法 选择
  20. - (instancetype)initWithConfig:(QNConfiguration *)config
  21. uploadOption:(QNUploadOption *)uploadOption
  22. targetRegion:(id <QNUploadRegion>)targetRegion
  23. currentRegion:(id <QNUploadRegion>)currentRegion
  24. key:(NSString * _Nullable)key
  25. token:(QNUpToken *)token;
  26. - (instancetype)initWithConfig:(QNConfiguration *)config
  27. uploadOption:(QNUploadOption *)uploadOption
  28. hosts:(NSArray <NSString *> *)hosts
  29. regionId:(NSString * _Nullable)regionId
  30. key:(NSString * _Nullable)key
  31. token:(QNUpToken *)token;
  32. - (void)queryUploadHosts:(QNRequestTransactionCompleteHandler)complete;
  33. - (void)uploadFormData:(NSData *)data
  34. fileName:(NSString *)fileName
  35. progress:(void(^)(long long totalBytesWritten, long long totalBytesExpectedToWrite))progress
  36. complete:(QNRequestTransactionCompleteHandler)complete;
  37. - (void)makeBlock:(long long)blockOffset
  38. blockSize:(long long)blockSize
  39. firstChunkData:(NSData *)firstChunkData
  40. progress:(void(^)(long long totalBytesWritten, long long totalBytesExpectedToWrite))progress
  41. complete:(QNRequestTransactionCompleteHandler)complete;
  42. - (void)uploadChunk:(NSString *)blockContext
  43. blockOffset:(long long)blockOffset
  44. chunkData:(NSData *)chunkData
  45. chunkOffset:(long long)chunkOffset
  46. progress:(void(^)(long long totalBytesWritten, long long totalBytesExpectedToWrite))progress
  47. complete:(QNRequestTransactionCompleteHandler)complete;
  48. - (void)makeFile:(long long)fileSize
  49. fileName:(NSString *)fileName
  50. blockContexts:(NSArray <NSString *> *)blockContexts
  51. complete:(QNRequestTransactionCompleteHandler)complete;
  52. - (void)initPart:(QNRequestTransactionCompleteHandler)complete;
  53. - (void)uploadPart:(NSString *)uploadId
  54. partIndex:(NSInteger)partIndex
  55. partData:(NSData *)partData
  56. progress:(void(^)(long long totalBytesWritten, long long totalBytesExpectedToWrite))progress
  57. complete:(QNRequestTransactionCompleteHandler)complete;
  58. /**
  59. * partInfoArray
  60. * |_ NSDictionary : { "etag": "<Etag>", "partNumber": <PartNumber> }
  61. */
  62. - (void)completeParts:(NSString *)fileName
  63. uploadId:(NSString *)uploadId
  64. partInfoArray:(NSArray <NSDictionary *> *)partInfoArray
  65. complete:(QNRequestTransactionCompleteHandler)complete;
  66. @end
  67. NS_ASSUME_NONNULL_END