QNUploadOption.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. //
  2. // QNUploadOption.h
  3. // QiniuSDK
  4. //
  5. // Created by bailong on 14/10/4.
  6. // Copyright (c) 2014年 Qiniu. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. /**
  10. * 上传进度回调函数
  11. *
  12. * @param key 上传时指定的存储key
  13. * @param percent 进度百分比
  14. */
  15. typedef void (^QNUpProgressHandler)(NSString *key, float percent);
  16. /**
  17. * 上传进度回调函数
  18. *
  19. * @param key 上传文件的保存文件名
  20. * @param uploadBytes 已上传大小
  21. * @param totalBytes 总大小;无法获取大小时为 -1
  22. */
  23. typedef void (^QNUpByteProgressHandler)(NSString *key, long long uploadBytes, long long totalBytes);
  24. /**
  25. * 上传中途取消函数
  26. *
  27. * @return 如果想取消,返回True, 否则返回No
  28. */
  29. typedef BOOL (^QNUpCancellationSignal)(void);
  30. /**
  31. * 可选参数集合,此类初始化后sdk上传使用时 不会对此进行改变;如果参数没有变化以及没有使用依赖,可以重复使用。
  32. */
  33. @interface QNUploadOption : NSObject
  34. /**
  35. * 用于服务器上传回调通知的自定义参数,参数的key必须以x: 开头 eg: x:foo
  36. */
  37. @property (copy, nonatomic, readonly) NSDictionary *params;
  38. /**
  39. * 用于设置meta数据,参数的key必须以x-qn-meta- 开头 eg: x-qn-meta-key
  40. */
  41. @property (copy, nonatomic, readonly) NSDictionary *metaDataParam;
  42. /**
  43. * 指定文件的mime类型
  44. */
  45. @property (copy, nonatomic, readonly) NSString *mimeType;
  46. /**
  47. * 是否进行crc校验
  48. */
  49. @property (readonly) BOOL checkCrc;
  50. /**
  51. * 进度回调函数
  52. */
  53. @property (copy, readonly) QNUpProgressHandler progressHandler;
  54. /**
  55. * 进度回调函数
  56. * 注:
  57. * 使用此接口,progressHandler 会无效
  58. */
  59. @property (copy, readonly) QNUpByteProgressHandler byteProgressHandler;
  60. /**
  61. * 中途取消函数
  62. */
  63. @property (copy, readonly) QNUpCancellationSignal cancellationSignal;
  64. /**
  65. * 可选参数的初始化方法
  66. *
  67. * @param mimeType mime类型
  68. * @param progress 进度函数
  69. * @param params 自定义服务器回调参数 参数的key必须以x: 开头 eg: x:foo
  70. * @param check 是否进行crc检查
  71. * @param cancellation 中途取消函数
  72. *
  73. * @return 可选参数类实例
  74. */
  75. - (instancetype)initWithMime:(NSString *)mimeType
  76. progressHandler:(QNUpProgressHandler)progress
  77. params:(NSDictionary *)params
  78. checkCrc:(BOOL)check
  79. cancellationSignal:(QNUpCancellationSignal)cancellation;
  80. - (instancetype)initWithMime:(NSString *)mimeType
  81. byteProgressHandler:(QNUpByteProgressHandler)progress
  82. params:(NSDictionary *)params
  83. checkCrc:(BOOL)check
  84. cancellationSignal:(QNUpCancellationSignal)cancellation;
  85. /**
  86. * 可选参数的初始化方法
  87. *
  88. * @param mimeType mime类型
  89. * @param progress 进度函数
  90. * @param params 自定义服务器回调参数 参数的key必须以x: 开头 eg: x:foo
  91. * @param metaDataParams 设置meta数据,参数的key必须以x-qn-meta- 开头 eg: x-qn-meta-key
  92. * @param check 是否进行crc检查
  93. * @param cancellation 中途取消函数
  94. *
  95. * @return 可选参数类实例
  96. */
  97. - (instancetype)initWithMime:(NSString *)mimeType
  98. progressHandler:(QNUpProgressHandler)progress
  99. params:(NSDictionary *)params
  100. metaDataParams:(NSDictionary *)metaDataParams
  101. checkCrc:(BOOL)check
  102. cancellationSignal:(QNUpCancellationSignal)cancellation;
  103. - (instancetype)initWithMime:(NSString *)mimeType
  104. byteProgressHandler:(QNUpByteProgressHandler)progress
  105. params:(NSDictionary *)params
  106. metaDataParams:(NSDictionary *)metaDataParams
  107. checkCrc:(BOOL)check
  108. cancellationSignal:(QNUpCancellationSignal)cancellation;
  109. - (instancetype)initWithProgressHandler:(QNUpProgressHandler)progress;
  110. - (instancetype)initWithByteProgressHandler:(QNUpByteProgressHandler)progress;
  111. /**
  112. * 内部使用,默认的参数实例
  113. *
  114. * @return 可选参数类实例
  115. */
  116. + (instancetype)defaultOptions;
  117. @end