CWFileUploadManager.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. //
  2. // CWFileUploadManager.h
  3. // uploadFileDemo
  4. //
  5. // Created by hyjet on 2018/3/9.
  6. // Copyright © 2018年 uploadFileDemo. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "CWFileStreamSeparation.h"
  10. #import "CWUploadTask.h"
  11. #import "CWFileManager.h"
  12. #import "CWUploadTask+CheckInfo.h"
  13. /** 删除/清空上传任务通知 */
  14. #define CWUploadTaskExeDelete @"CWUploadTaskExeDelete"
  15. @interface CWFileUploadManager : NSObject
  16. //总的文件分片模型数
  17. @property (nonatomic,readonly)NSMutableDictionary *fileStreamDict;
  18. //总任务数
  19. @property (nonatomic,readonly)NSMutableDictionary *allTasks;
  20. //正在上传中的任务
  21. @property (nonatomic,readonly)NSMutableDictionary *uploadingTasks;
  22. //正在等待上传的任务
  23. @property (nonatomic,readonly)NSMutableDictionary *uploadWaitTasks;
  24. //已经上传完的任务
  25. @property (nonatomic,readonly)NSMutableDictionary *uploadEndTasks;
  26. //同时上传的任务数
  27. @property (nonatomic,readonly)NSInteger uploadMaxNum;
  28. //云盘剩余空间
  29. @property (nonatomic,assign) int64_t leftStore;
  30. //配置的上传路径
  31. @property (nonatomic,readonly)NSURL *url;
  32. //配置的请求体
  33. @property (nonatomic,readonly)NSMutableURLRequest *request;
  34. //操作记录plist文件保存路径
  35. @property (nonatomic,copy)NSString *plistPath;
  36. //获得管理类单例对象
  37. + (instancetype)shardUploadManager;
  38. //配置全局默认参数
  39. /**
  40. @param request 默认请求头
  41. @param num 最大任务数
  42. */
  43. - (void)config:(NSMutableURLRequest * _Nonnull)request maxTask:(NSInteger)num;
  44. //根据文件路径创建上传任务
  45. - (CWUploadTask *_Nullable)createUploadTask:(NSString *_Nonnull)filePath;
  46. //根据文件路径 服务器路径创建上传任务
  47. - (CWUploadTask *_Nullable)createUploadTask:(NSString *_Nonnull)filePath uploadLocation:(NSString *_Nonnull)uploadLocation imageData:(NSData *_Nullable)imageData;
  48. //云手机上传 写入plist文件
  49. - (void)createUploadTaskWithParams:(NSDictionary *)params;
  50. /**
  51. 暂停一个上传任务
  52. @param fileStream 上传文件的路径
  53. */
  54. - (void)pauseUploadTask:(CWFileStreamSeparation *_Nonnull)fileStream;
  55. /**
  56. 继续开始一个上传任务
  57. @param fileStream 上传文件的路径
  58. */
  59. - (void)resumeUploadTask:(CWFileStreamSeparation *_Nonnull)fileStream;
  60. /**
  61. 删除一个上传任务,同时会删除当前任务上传的缓存数据
  62. @param fileStream 上传文件的路径
  63. */
  64. - (void)removeUploadTask:(CWFileStreamSeparation *_Nonnull)fileStream;
  65. /**
  66. 暂停所有上传任务
  67. */
  68. - (void)pauseAllUploadTask;
  69. /**
  70. 启动所有上传任务
  71. */
  72. - (void)resumeAllUploadTask;
  73. /**
  74. 删除所有上传任务
  75. */
  76. - (void)removeAllUploadTask;
  77. #pragma mark - 相册文件写入Cache
  78. /// 将相册里的视频文件缓存到Cache
  79. - (NSString *_Nullable)writeVideoDataFromURL:(NSURL *_Nullable)url uploadLocation:(NSString *_Nullable)uploadLocation;
  80. /// 将相册里的图片文件缓存到Cache
  81. - (NSString *_Nullable)writeIamgeData:(NSData *_Nullable)data iamgeName:(NSString *_Nullable)iamgeName uploadLocation:(NSString *_Nullable)uploadLocation;
  82. - (NSString *_Nullable)writeIamgeDataToLocal:(NSData *_Nullable)data;
  83. @end