//
//  ZYJQNBaseUpload.h
//  ZYJQiniuSDK
//
//  Created by WorkSpace_Sun on 2020/4/19.
//  Copyright © 2020 Qiniu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ZYJQNConfiguration.h"
#import "ZYJQNCrc32.h"
#import "ZYJQNRecorderDelegate.h"
#import "ZYJQNHttpResponseInfo.h"
#import "ZYJQNSessionManager.h"
#import "ZYJQNUpToken.h"
#import "ZYJQNUrlSafeBase64.h"
#import "ZYJQNAsyncRun.h"
#import "ZYJQNUploadInfoCollector.h"
#import "ZYJQNUploadManager.h"
#import "ZYJQNUploadOption.h"

@interface ZYJQNBaseUpload : NSObject

@property (nonatomic, copy) NSString *key;
@property (nonatomic, copy) NSString *identifier;
@property (nonatomic, copy) NSString *access; //AK
@property (nonatomic, assign) UInt32 size;
@property (nonatomic, strong) ZYJQNSessionManager *sessionManager;
@property (nonatomic, strong) ZYJQNUpToken *token;
@property (nonatomic, strong) ZYJQNUploadOption *option;
@property (nonatomic, strong) ZYJQNUpCompletionHandler complete;
@property (nonatomic, strong) ZYJQNConfiguration *config;
@property (nonatomic, assign) ZYJQNZoneInfoType currentZoneType;
@property (nonatomic, assign) ZYJQNRequestType requestType;

- (void)collectHttpResponseInfo:(ZYJQNHttpResponseInfo *)httpResponseInfo fileOffset:(uint64_t)fileOffset;

- (void)collectUploadQualityInfo;

- (void)run;

@end
