123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- //
- // QNPartsUploadPerformer.h
- // QiniuSDK
- //
- // Created by yangsen on 2020/12/1.
- // Copyright © 2020 Qiniu. All rights reserved.
- //
- /// 抽象类,不可以直接使用,需要使用子类
- #import "QNFileDelegate.h"
- #import "QNUploadSource.h"
- #import "QNResponseInfo.h"
- #import "QNUploadOption.h"
- #import "QNConfiguration.h"
- #import "QNUpToken.h"
- NS_ASSUME_NONNULL_BEGIN
- @protocol QNUploadRegion;
- @class QNUploadInfo, QNRequestTransaction, QNUploadRegionRequestMetrics;
- @interface QNPartsUploadPerformer : NSObject
- @property (nonatomic, copy, readonly) NSString *key;
- @property (nonatomic, copy, readonly) NSString *fileName;
- @property (nonatomic, strong, readonly) id <QNUploadSource> uploadSource;
- @property (nonatomic, strong, readonly) QNUpToken *token;
- @property (nonatomic, strong, readonly) QNUploadOption *option;
- @property (nonatomic, strong, readonly) QNConfiguration *config;
- @property (nonatomic, strong, readonly) id <QNRecorderDelegate> recorder;
- @property (nonatomic, copy, readonly) NSString *recorderKey;
- /// 断点续传时,起始上传偏移
- @property(nonatomic, strong, readonly)NSNumber *recoveredFrom;
- @property(nonatomic, strong, readonly)id <QNUploadRegion> currentRegion;
- @property(nonatomic, strong, readonly)QNUploadInfo *uploadInfo;
- - (instancetype)initWithSource:(id<QNUploadSource>)uploadSource
- fileName:(NSString *)fileName
- key:(NSString *)key
- token:(QNUpToken *)token
- option:(QNUploadOption *)option
- configuration:(QNConfiguration *)config
- recorderKey:(NSString *)recorderKey;
- // 是否可以重新加载资源
- - (BOOL)couldReloadInfo;
- // 重新加载资源
- - (BOOL)reloadInfo;
- - (void)switchRegion:(id <QNUploadRegion>)region;
- /// 通知回调当前进度
- - (void)notifyProgress:(BOOL)isCompleted;
- /// 分片信息保存本地
- - (void)recordUploadInfo;
- /// 分片信息从本地移除
- - (void)removeUploadInfoRecord;
- /// 根据字典构造分片信息 【子类实现】
- - (QNUploadInfo *)getFileInfoWithDictionary:(NSDictionary * _Nonnull)fileInfoDictionary;
- /// 根据配置构造分片信息 【子类实现】
- - (QNUploadInfo *)getDefaultUploadInfo;
- - (QNRequestTransaction *)createUploadRequestTransaction;
- - (void)destroyUploadRequestTransaction:(QNRequestTransaction *)transaction;
- /// 上传前,服务端配置工作 【子类实现】
- - (void)serverInit:(void(^)(QNResponseInfo * _Nullable responseInfo,
- QNUploadRegionRequestMetrics * _Nullable metrics,
- NSDictionary * _Nullable response))completeHandler;
- /// 上传文件分片 【子类实现】
- - (void)uploadNextData:(void(^)(BOOL stop,
- QNResponseInfo * _Nullable responseInfo,
- QNUploadRegionRequestMetrics * _Nullable metrics,
- NSDictionary * _Nullable response))completeHandler;
- /// 完成上传,服务端组织文件信息 【子类实现】
- - (void)completeUpload:(void(^)(QNResponseInfo * _Nullable responseInfo,
- QNUploadRegionRequestMetrics * _Nullable metrics,
- NSDictionary * _Nullable response))completeHandler;
- @end
- NS_ASSUME_NONNULL_END
|