Skip to content

Commit 8acc8dd

Browse files
author
garenwang
committed
# 5.9.0
1. SDK支持自定义简单上传或分块上传的阈值 2. 灯塔上报优化 3. 区分用户主动取消和系统取消的场景
1 parent 4c6dc87 commit 8acc8dd

17 files changed

+135
-58
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# 5.9.0
2+
1. SDK支持自定义简单上传或分块上传的阈值
3+
2. 灯塔上报优化
4+
3. 区分用户主动取消和系统取消的场景
5+
16
# 5.8.9
27
- 一些修复
38

QCloudCOSXML.podspec

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22
s.name = "QCloudCOSXML"
33

4-
s.version = "5.8.9"
4+
s.version = "5.9.0"
55

66
s.summary = "QCloudCOSXML 腾讯云iOS-SDK组件"
77

@@ -20,15 +20,15 @@ s.version = "5.8.9"
2020
s.subspec 'Default' do |default|
2121
default.source_files = 'QCloudCOSXML/Classes/**/*','Models/request.model','QCloudCOSXML/Classes/QCloudCOSXML/*'
2222

23-
default.dependency "QCloudCore",'5.8.9'
23+
default.dependency "QCloudCore",'5.9.0'
2424
end
2525
s.subspec 'Slim' do |slim|
2626
slim.source_files = 'QCloudCOSXML/Classes/**/*','Models/request.model','QCloudCOSXML/Classes/QCloudCOSXML/*'
27-
slim.dependency "QCloudCore/WithoutMTA",'5.8.9'
27+
slim.dependency "QCloudCore/WithoutMTA",'5.9.0'
2828
end
2929
s.subspec 'Transfer' do |transfer|
3030
transfer.source_files = 'QCloudCOSXML/Classes/*','QCloudCOSXML/Classes/Transfer/**/*','QCloudCOSXML/Classes/Base/**/*'
31-
transfer.dependency "QCloudCore/WithoutMTA",'5.8.9'
31+
transfer.dependency "QCloudCore/WithoutMTA",'5.9.0'
3232
end
3333

3434
end

QCloudCOSXML/Classes/QCloudCOSXMLVersion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
#ifndef QCloudCOSXMLModuleVersion_h
77
#define QCloudCOSXMLModuleVersion_h
8-
#define QCloudCOSXMLModuleVersionNumber 508008
8+
#define QCloudCOSXMLModuleVersionNumber 509000
99

1010
//dependency
1111

QCloudCOSXML/Classes/QCloudCOSXMLVersion.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#import "QCloudCOSXMLVersion.h"
2-
NSString * const QCloudCOSXMLModuleVersion = @"5.8.9";
2+
NSString * const QCloudCOSXMLModuleVersion = @"5.9.0";
33
NSString * const QCloudCOSXMLModuleName = @"QCloudCOSXML";
44
@interface QCloudQCloudCOSXMLLoad : NSObject
55
@end

QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLDownloadObjectRequest.m

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ @interface QCloudCOSXMLDownloadObjectRequest()
2323
@implementation QCloudCOSXMLDownloadObjectRequest
2424
#pragma clang diagnostic pop
2525
- (void)dealloc {
26-
NSLog(@"QCloudCOSXMLUploadObjectRequest = %@ dealloc", self);
26+
QCloudLogInfo(@"QCloudCOSXMLUploadObjectRequest = %@ dealloc", self);
2727
if (NULL != _queueSource) {
2828
dispatch_source_cancel(_queueSource);
2929
}
@@ -72,7 +72,6 @@ - (void)fakeStart {
7272
@"etag":outputObject[@"Etag"],
7373
@"crc64ecma":outputObject[@"x-cos-hash-crc64ecma"],
7474
};
75-
NSLog(@"file info = %@",dic);
7675
NSError *parseError;
7776
NSData *info =[NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
7877
NSError *writeDataError;
@@ -92,7 +91,6 @@ - (void)fakeStart {
9291
@"etag":outputObject[@"Etag"],
9392
@"crc64ecma":outputObject[@"x-cos-hash-crc64ecma"],
9493
};
95-
NSLog(@"file info = %@",dic);
9694
NSError *parseError;
9795
NSData *info =[NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
9896
NSError *writeDataError;
@@ -126,7 +124,7 @@ - (void)startGetObject {
126124
[request setDownProcessBlock:^(int64_t bytesDownload, int64_t totalBytesDownload, int64_t totalBytesExpectedToDownload) {
127125
__strong typeof(weakSelf) strongSelf = self;
128126
currentTotalBytesDownload = totalBytesDownload;
129-
NSLog(@"🔽🔽🔽🔽🔽downProcess %lld %lld %ld",totalBytesDownload,currentTotalBytesDownload,totalBytesExpectedToDownload);
127+
QCloudLogInfo(@"🔽🔽🔽🔽🔽downProcess %lld %lld %ld",totalBytesDownload,currentTotalBytesDownload,totalBytesExpectedToDownload);
130128
if(strongSelf.downProcessBlock){
131129
strongSelf.downProcessBlock(bytesDownload, totalBytesDownload, totalBytesExpectedToDownload);
132130
}

QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ typedef void (^RequestsMetricArrayBlock)(NSMutableArray *_Nullable requstMetricA
4545
4646
*/
4747
@interface QCloudCOSXMLUploadObjectRequest<BodyType> : QCloudAbstractRequest
48+
//自定义分片大小
4849
@property (nonatomic, assign) NSUInteger sliceSize;
50+
//自定义分片阈值
51+
@property (nonatomic, assign) NSInteger mutilThreshold;
4952
@property (nonatomic, assign) QCloudAbstractRequestPriority uploadPriority;
5053
/**
5154
上传文件(对象)的文件名,也是对象的key,请注意文件名中不可以含有问号即"?"字符

QCloudCOSXML/Classes/Transfer/request/QCloudCOSXMLUploadObjectRequest.m

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ @interface QCloudCOSXMLUploadObjectRequest () <QCloudHttpRetryHandlerProtocol> {
6767
@implementation QCloudCOSXMLUploadObjectRequest
6868

6969
- (void)dealloc {
70-
NSLog(@"QCloudCOSXMLUploadObjectRequest = %@ dealloc", self);
70+
QCloudLogInfo(@"QCloudCOSXMLUploadObjectRequest = %@ dealloc", self);
7171
if (NULL != _queueSource) {
7272
dispatch_source_cancel(_queueSource);
7373
}
@@ -90,13 +90,14 @@ - (instancetype)init {
9090
_recursiveLock = [NSRecursiveLock new];
9191
_progressLock = [NSRecursiveLock new];
9292
_requstMetricArray = [NSMutableArray array];
93-
;
93+
_mutilThreshold = kQCloudCOSXMLUploadLengthLimit;
9494
_enableMD5Verification = YES;
9595
_retryHandler = [QCloudHTTPRetryHanlder defaultRetryHandler];
9696
startPartNumber = -1;
9797
self.priority = QCloudAbstractRequestPriorityHigh;
9898
return self;
9999
}
100+
100101
- (NSDictionary *)modelCustomWillTransformFromDictionary:(NSDictionary *)dictionary {
101102
NSMutableDictionary *dict = [dictionary mutableCopy];
102103
if ([dictionary valueForKey:@"body"]) {
@@ -249,7 +250,15 @@ - (void)fakeStart {
249250
return;
250251
}
251252
self.dataContentLength = QCloudFileSize(url.path);
252-
if (self.dataContentLength > kQCloudCOSXMLUploadLengthLimit) {
253+
if(_mutilThreshold<kQCloudCOSXMLUploadLengthLimit){
254+
@throw [NSException
255+
exceptionWithName:QCloudErrorDomain
256+
reason:[NSString
257+
stringWithFormat:
258+
@"分块接口的阈值不能小于 1MB ,当前阈值为 %ld", (long)_mutilThreshold]
259+
userInfo:nil];
260+
}
261+
if (self.dataContentLength > _mutilThreshold) {
253262
//开始分片上传的时候,上传的起始位置是0
254263
uploadedSize = 0;
255264
startPartNumber = 0;
@@ -277,8 +286,10 @@ - (void)startSimpleUpload {
277286
request.finishBlock = ^(id outputObject, NSError *error) {
278287
__strong typeof(weakSelf) strongSelf = weakSelf;
279288
__strong typeof(weakRequest) strongRequst = weakRequest;
280-
[strongSelf.requstMetricArray addObject:@{ [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }];
281-
289+
[weakSelf.requstMetricArray addObject:@{ [NSString stringWithFormat:@"%@", strongRequst] : weakRequest.benchMarkMan.tastMetrics }];
290+
if (self.requstsMetricArrayBlock) {
291+
self.requstsMetricArrayBlock(weakSelf.requstMetricArray);
292+
}
282293
if (error) {
283294
[weakSelf onError:error];
284295
[self cancel];
@@ -564,7 +575,6 @@ - (void)onError:(NSError *)error {
564575
- (void)finishUpload:(NSString *)uploadId {
565576
NSURL *url = (NSURL *)self.body;
566577
if(self.canceled){
567-
NSLog(@"finishUpload canceled = %d",self.canceled?1:0);
568578
return;
569579
}
570580
if(!self.uploadBodyIsCompleted){
@@ -680,7 +690,7 @@ - (QCloudCOSXMLUploadObjectResumeData)cancelByProductingResumeData:(NSError *__a
680690
}
681691

682692
- (QCloudCOSXMLUploadObjectResumeData)productingReqsumeData:(NSError *__autoreleasing *)error {
683-
if (_dataContentLength <= kQCloudCOSXMLUploadLengthLimit) {
693+
if (_dataContentLength <= _mutilThreshold) {
684694
if (NULL != error) {
685695
*error = [NSError qcloud_errorWithCode:QCloudNetworkErrorUnsupportOperationError
686696
message:@"UnsupportOperation:无法暂停当前的上传请求,因为使用的是单次上传"];

QCloudCore.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
Pod::Spec.new do |s|
1010
s.name = "QCloudCore"
1111

12-
s.version = "5.8.9"
12+
s.version = "5.9.0"
1313

1414

1515
s.summary = "QCloudCore--腾讯云iOS-SDK Foundation"

QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ typedef void (^QCloudHTTPRequestConfigure)(QCloudRequestSerializer *_Nonnull req
3232
@property (nonatomic, strong, readonly) QCloudRequestSerializer *_Nonnull requestSerializer;
3333
@property (nonatomic, strong, readonly) QCloudRequestData *_Nonnull requestData;
3434
@property (nonatomic, strong, readonly) QCloudResponseSerializer *_Nonnull responseSerializer;
35+
@property (nonatomic, strong, readonly) NSURLRequest *_Nullable urlRequest;
3536

3637
/**
3738
该任务所处的服务

QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest.m

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ @interface QCloudHTTPRequest () {
3232
@property (atomic, assign) BOOL isCancel;
3333
@property (nonatomic, strong, readonly) NSMutableURLRequest *cachedURLRequest;
3434
@property (nonatomic, strong, readonly) NSError *cachedURLRequestBuildError;
35+
@property (nonatomic, strong) NSURLRequest *_Nullable urlRequest;
3536
@end
3637

3738
@implementation QCloudHTTPRequest
@@ -134,14 +135,15 @@ - (NSURLRequest *)buildURLRequest:(NSError *__autoreleasing *)error {
134135
}
135136
QCloudLogDebug(@"SendingRequest [%lld]\n%@\n%@ \nrequest content:%@", self.requestID, request, request.allHTTPHeaderFields,
136137
[[NSString alloc] initWithData:request.HTTPBody encoding:NSUTF8StringEncoding]);
138+
self.urlRequest = request;
137139
return request;
138140
}
139141

140142
- (void)onReviveErrorResponse:(NSURLResponse *)response error:(NSError *)error {
141143
_httpURLResponse = (NSHTTPURLResponse *)response;
142144
_httpURLError = error;
143145
if (NSURLErrorCancelled == error.code && [NSURLErrorDomain isEqualToString:error.domain]) {
144-
error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeCanceled message:@"UserCancelled:The request is canceled"];
146+
error = [NSError qcloud_errorWithCode:QCloudNetworkErrorCodeCanceled message:@"UserCancelled:The request is canceled" infos:@{kQCloudErrorDetailCode:@(NSURLErrorCancelled)}];
145147
}
146148
_httpURLError.__originHTTPURLResponse__ = _httpURLResponse;
147149
error.__originHTTPURLResponse__ = _httpURLResponse;

0 commit comments

Comments
 (0)