// // CWFileUploadManager.h // uploadFileDemo // // Created by hyjet on 2018/3/9. // Copyright © 2018年 uploadFileDemo. All rights reserved. // #import #import "CWFileStreamSeparation.h" #import "CWUploadTask.h" #import "CWFileManager.h" #import "CWUploadTask+CheckInfo.h" /** 删除/清空上传任务通知 */ #define CWUploadTaskExeDelete @"CWUploadTaskExeDelete" @interface CWFileUploadManager : NSObject //总的文件分片模型数 @property (nonatomic,readonly)NSMutableDictionary *fileStreamDict; //总任务数 @property (nonatomic,readonly)NSMutableDictionary *allTasks; //正在上传中的任务 @property (nonatomic,readonly)NSMutableDictionary *uploadingTasks; //正在等待上传的任务 @property (nonatomic,readonly)NSMutableDictionary *uploadWaitTasks; //已经上传完的任务 @property (nonatomic,readonly)NSMutableDictionary *uploadEndTasks; //同时上传的任务数 @property (nonatomic,readonly)NSInteger uploadMaxNum; //云盘剩余空间 @property (nonatomic,assign) int64_t leftStore; //配置的上传路径 @property (nonatomic,readonly)NSURL *url; //配置的请求体 @property (nonatomic,readonly)NSMutableURLRequest *request; //操作记录plist文件保存路径 @property (nonatomic,copy)NSString *plistPath; //获得管理类单例对象 + (instancetype)shardUploadManager; //配置全局默认参数 /** @param request 默认请求头 @param num 最大任务数 */ - (void)config:(NSMutableURLRequest * _Nonnull)request maxTask:(NSInteger)num; //根据文件路径创建上传任务 - (CWUploadTask *_Nullable)createUploadTask:(NSString *_Nonnull)filePath; //根据文件路径 服务器路径创建上传任务 - (CWUploadTask *_Nullable)createUploadTask:(NSString *_Nonnull)filePath uploadLocation:(NSString *_Nonnull)uploadLocation imageData:(NSData *_Nullable)imageData; //云手机上传 写入plist文件 - (void)createUploadTaskWithParams:(NSDictionary *)params; /** 暂停一个上传任务 @param fileStream 上传文件的路径 */ - (void)pauseUploadTask:(CWFileStreamSeparation *_Nonnull)fileStream; /** 继续开始一个上传任务 @param fileStream 上传文件的路径 */ - (void)resumeUploadTask:(CWFileStreamSeparation *_Nonnull)fileStream; /** 删除一个上传任务,同时会删除当前任务上传的缓存数据 @param fileStream 上传文件的路径 */ - (void)removeUploadTask:(CWFileStreamSeparation *_Nonnull)fileStream; /** 暂停所有上传任务 */ - (void)pauseAllUploadTask; /** 启动所有上传任务 */ - (void)resumeAllUploadTask; /** 删除所有上传任务 */ - (void)removeAllUploadTask; #pragma mark - 相册文件写入Cache /// 将相册里的视频文件缓存到Cache - (NSString *_Nullable)writeVideoDataFromURL:(NSURL *_Nullable)url uploadLocation:(NSString *_Nullable)uploadLocation; /// 将相册里的图片文件缓存到Cache - (NSString *_Nullable)writeIamgeData:(NSData *_Nullable)data iamgeName:(NSString *_Nullable)iamgeName uploadLocation:(NSString *_Nullable)uploadLocation; - (NSString *_Nullable)writeIamgeDataToLocal:(NSData *_Nullable)data; @end