123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- //
- // QNRequestTransaction.h
- // QiniuSDK
- //
- // Created by yangsen on 2020/4/30.
- // Copyright © 2020 Qiniu. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "QNUploadRegionInfo.h"
- NS_ASSUME_NONNULL_BEGIN
- @class QNUpToken, QNConfiguration, QNUploadOption, QNResponseInfo, QNUploadRegionRequestMetrics;
- typedef void(^QNRequestTransactionCompleteHandler)(QNResponseInfo * _Nullable responseInfo, QNUploadRegionRequestMetrics * _Nullable metrics, NSDictionary * _Nullable response);
- // 单个对象只能执行一个事务,多个事务需要创建多个事务对象完成
- @interface QNRequestTransaction : NSObject
- //MARK:-- 构造方法
- - (instancetype)initWithHosts:(NSArray <NSString *> *)hosts
- regionId:(NSString * _Nullable)regionId
- token:(QNUpToken *)token;
- //MARK:-- upload事务构造方法 选择
- - (instancetype)initWithConfig:(QNConfiguration *)config
- uploadOption:(QNUploadOption *)uploadOption
- targetRegion:(id <QNUploadRegion>)targetRegion
- currentRegion:(id <QNUploadRegion>)currentRegion
- key:(NSString * _Nullable)key
- token:(QNUpToken *)token;
- - (instancetype)initWithConfig:(QNConfiguration *)config
- uploadOption:(QNUploadOption *)uploadOption
- hosts:(NSArray <NSString *> *)hosts
- regionId:(NSString * _Nullable)regionId
- key:(NSString * _Nullable)key
- token:(QNUpToken *)token;
- - (void)queryUploadHosts:(QNRequestTransactionCompleteHandler)complete;
- - (void)uploadFormData:(NSData *)data
- fileName:(NSString *)fileName
- progress:(void(^)(long long totalBytesWritten, long long totalBytesExpectedToWrite))progress
- complete:(QNRequestTransactionCompleteHandler)complete;
- - (void)makeBlock:(long long)blockOffset
- blockSize:(long long)blockSize
- firstChunkData:(NSData *)firstChunkData
- progress:(void(^)(long long totalBytesWritten, long long totalBytesExpectedToWrite))progress
- complete:(QNRequestTransactionCompleteHandler)complete;
- - (void)uploadChunk:(NSString *)blockContext
- blockOffset:(long long)blockOffset
- chunkData:(NSData *)chunkData
- chunkOffset:(long long)chunkOffset
- progress:(void(^)(long long totalBytesWritten, long long totalBytesExpectedToWrite))progress
- complete:(QNRequestTransactionCompleteHandler)complete;
- - (void)makeFile:(long long)fileSize
- fileName:(NSString *)fileName
- blockContexts:(NSArray <NSString *> *)blockContexts
- complete:(QNRequestTransactionCompleteHandler)complete;
- - (void)initPart:(QNRequestTransactionCompleteHandler)complete;
- - (void)uploadPart:(NSString *)uploadId
- partIndex:(NSInteger)partIndex
- partData:(NSData *)partData
- progress:(void(^)(long long totalBytesWritten, long long totalBytesExpectedToWrite))progress
- complete:(QNRequestTransactionCompleteHandler)complete;
- /**
- * partInfoArray
- * |_ NSDictionary : { "etag": "<Etag>", "partNumber": <PartNumber> }
- */
- - (void)completeParts:(NSString *)fileName
- uploadId:(NSString *)uploadId
- partInfoArray:(NSArray <NSDictionary *> *)partInfoArray
- complete:(QNRequestTransactionCompleteHandler)complete;
- /**
- * 上传日志
- */
- - (void)reportLog:(NSData *)logData
- logClientId:(NSString *)logClientId
- complete:(QNRequestTransactionCompleteHandler)complete;
- /**
- * 获取服务端配置
- */
- - (void)serverConfig:(QNRequestTransactionCompleteHandler)complete;
- /**
- * 获取服务端针对某个用户的配置
- */
- - (void)serverUserConfig:(QNRequestTransactionCompleteHandler)complete;
- @end
- NS_ASSUME_NONNULL_END
|