QNUploadFileInfoPartV1.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //
  2. // QNUploadFileInfoPartV1.h
  3. // QiniuSDK
  4. //
  5. // Created by yangsen on 2020/11/30.
  6. // Copyright © 2020 Qiniu. All rights reserved.
  7. //
  8. #import "QNUploadFileInfo.h"
  9. NS_ASSUME_NONNULL_BEGIN
  10. @interface QNUploadBlock : NSObject
  11. // block下标
  12. @property(nonatomic, assign, readonly)NSInteger index;
  13. // 当前data偏移量
  14. @property(nonatomic, assign, readonly)long long offset;
  15. // 块大小
  16. @property(nonatomic, assign, readonly)long long size;
  17. // 需要上传的片数据
  18. @property(nonatomic, strong, readonly)NSArray <QNUploadData *> *uploadDataList;
  19. // block上传上下文信息
  20. @property(nonatomic, copy, nullable)NSString *context;
  21. // 是否已完成上传【不进行离线缓存】
  22. @property(nonatomic, assign, readonly)BOOL isCompleted;
  23. // 上传进度 【不进行离线缓存】
  24. @property(nonatomic, assign, readonly)float progress;
  25. //MARK:-- 构造
  26. + (instancetype)blockFromDictionary:(NSDictionary *)dictionary;
  27. - (instancetype)initWithOffset:(long long)offset
  28. blockSize:(NSInteger)blockSize
  29. dataSize:(NSInteger)dataSize
  30. index:(NSInteger)index;
  31. /// 获取下一个需要上传的块
  32. - (QNUploadData *)nextUploadData;
  33. /// 转化字典
  34. - (NSDictionary *)toDictionary;
  35. @end
  36. @interface QNUploadFileInfoPartV1 : QNUploadFileInfo
  37. // 需要上传的块
  38. @property(nonatomic, strong, readonly)NSArray <QNUploadBlock *> *uploadBlocks;
  39. - (instancetype)initWithFileSize:(long long)fileSize
  40. blockSize:(long long)blockSize
  41. dataSize:(long long)dataSize
  42. modifyTime:(NSInteger)modifyTime;
  43. /// 获取下一个需要上传的chunk所在的block
  44. - (QNUploadBlock *)nextUploadBlock;
  45. /// 获取所有block context
  46. - (NSArray <NSString *> *)allBlocksContexts;
  47. @end
  48. NS_ASSUME_NONNULL_END