QNUploadBlock.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. //
  2. // QNUploadBlock.h
  3. // QiniuSDK
  4. //
  5. // Created by yangsen on 2021/5/10.
  6. // Copyright © 2021 Qiniu. All rights reserved.
  7. //
  8. #import "QNUploadData.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)NSInteger size;
  17. // 需要上传的片数据
  18. @property(nonatomic, strong, readonly)NSArray <QNUploadData *> *uploadDataList;
  19. // block上传上下文信息
  20. @property(nonatomic, copy, nullable)NSString *context;
  21. // block md5
  22. @property(nonatomic, copy, nullable)NSString *md5;
  23. // 是否已完成上传【不进行离线缓存】
  24. @property(nonatomic, assign, readonly)BOOL isCompleted;
  25. // 上传大小 【不进行离线缓存】
  26. @property(nonatomic, assign, readonly)NSInteger uploadSize;
  27. // ctx 过期时间
  28. @property(nonatomic, strong, nullable)NSNumber *expiredAt;
  29. //MARK:-- 构造
  30. + (instancetype)blockFromDictionary:(NSDictionary *)dictionary;
  31. - (instancetype)initWithOffset:(long long)offset
  32. blockSize:(NSInteger)blockSize
  33. dataSize:(NSInteger)dataSize
  34. index:(NSInteger)index;
  35. // 检测 block 是否有效
  36. - (BOOL)isValid;
  37. /// 获取下一个需要上传的块
  38. - (QNUploadData *)nextUploadDataWithoutCheckData;
  39. /// 检测 data 状态,处理出于上传状态的无 data 数据的情况,无 data 数据则状态调整为监测数据状态
  40. - (void)checkInfoStateAndUpdate;
  41. /// 清理上传状态
  42. - (void)clearUploadState;
  43. /// 转化字典
  44. - (NSDictionary *)toDictionary;
  45. @end
  46. NS_ASSUME_NONNULL_END