12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- //
- // QNFormUpload.m
- // QiniuSDK
- //
- // Created by bailong on 15/1/4.
- // Copyright (c) 2015年 Qiniu. All rights reserved.
- //
- #import "QNDefine.h"
- #import "QNLogUtil.h"
- #import "QNFormUpload.h"
- #import "QNResponseInfo.h"
- #import "QNUpProgress.h"
- #import "QNRequestTransaction.h"
- @interface QNFormUpload ()
- @property(nonatomic, strong)QNUpProgress *progress;
- @property(nonatomic, strong)QNRequestTransaction *uploadTransaction;
- @end
- @implementation QNFormUpload
- - (void)startToUpload {
- [super startToUpload];
-
- QNLogInfo(@"key:%@ form上传", self.key);
-
- self.uploadTransaction = [[QNRequestTransaction alloc] initWithConfig:self.config
- uploadOption:self.option
- targetRegion:[self getTargetRegion]
- currentRegion:[self getCurrentRegion]
- key:self.key
- token:self.token];
- kQNWeakSelf;
- void(^progressHandler)(long long totalBytesWritten, long long totalBytesExpectedToWrite) = ^(long long totalBytesWritten, long long totalBytesExpectedToWrite){
- kQNStrongSelf;
- [self.progress progress:self.key uploadBytes:totalBytesWritten totalBytes:totalBytesExpectedToWrite];
- };
-
- [self.uploadTransaction uploadFormData:self.data
- fileName:self.fileName
- progress:progressHandler
- complete:^(QNResponseInfo * _Nullable responseInfo, QNUploadRegionRequestMetrics * _Nullable metrics, NSDictionary * _Nullable response) {
- kQNStrongSelf;
-
- [self addRegionRequestMetricsOfOneFlow:metrics];
-
- if (!responseInfo.isOK) {
- if (![self switchRegionAndUploadIfNeededWithErrorResponse:responseInfo]) {
- [self complete:responseInfo response:response];
- }
- return;
- }
-
- [self.progress notifyDone:self.key totalBytes:self.data.length];
- [self complete:responseInfo response:response];
- }];
- }
- - (QNUpProgress *)progress {
- if (_progress == nil) {
- _progress = [QNUpProgress progress:self.option.progressHandler byteProgress:self.option.byteProgressHandler];
- }
- return _progress;
- }
- - (NSString *)upType {
- return QNUploadUpTypeForm;
- }
- @end
|