Skip to content

Commit 12c866c

Browse files
committed
Merge pull request #106 from longbai/sharedContainerIdentifier
add sharedContainerIdentifier
2 parents 369eeab + de2b932 commit 12c866c

File tree

6 files changed

+34
-16
lines changed

6 files changed

+34
-16
lines changed

QiniuSDK/Http/QNSessionManager.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
urlConverter:(QNUrlConvert)converter
1313
upStatsDropRate:(float)dropRate
1414
dns:(QNDnsManager*)dns
15-
enableBg:(BOOL)bg;
15+
enableBg:(BOOL)bg
16+
sharedContainerIdentifier:(NSString*)identifier;
1617

1718
- (void) multipartPost:(NSString *)url
1819
withData:(NSData *)data

QiniuSDK/Http/QNSessionManager.m

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ - (instancetype)initWithProxy:(NSDictionary *)proxyDict
9393
urlConverter:(QNUrlConvert)converter
9494
upStatsDropRate:(float)dropRate
9595
dns:(QNDnsManager*)dns
96-
enableBg:(BOOL)bg{
96+
enableBg:(BOOL)bg
97+
sharedContainerIdentifier:(NSString*)identifier{
9798
if (self = [super init]) {
9899
if (proxyDict != nil) {
99100
_noProxy = NO;
@@ -102,9 +103,9 @@ - (instancetype)initWithProxy:(NSDictionary *)proxyDict
102103
_noProxy = YES;
103104
}
104105
if (bg) {
105-
_httpManager = [QNSessionManager sharedBgHttpManagerWithProxy:proxyDict];
106+
_httpManager = [QNSessionManager sharedBgHttpManagerWithProxy:proxyDict sharedContainerIdentifier:identifier];
106107
}else{
107-
_httpManager = [QNSessionManager httpManagerWithProxy:proxyDict];
108+
_httpManager = [QNSessionManager httpManagerWithProxy:proxyDict sharedContainerIdentifier:identifier];
108109
}
109110

110111
_timeout = timeout;
@@ -116,23 +117,33 @@ - (instancetype)initWithProxy:(NSDictionary *)proxyDict
116117
return self;
117118
}
118119

119-
+ (AFHTTPSessionManager*) httpManagerWithProxy:(NSDictionary *)proxyDict{
120+
+ (AFHTTPSessionManager*) httpManagerWithProxy:(NSDictionary *)proxyDict
121+
sharedContainerIdentifier:(NSString*)identifier{
120122
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
121123
if (proxyDict != nil) {
122124
configuration.connectionProxyDictionary = proxyDict;
123125
}
126+
127+
if (identifier) {
128+
configuration.sharedContainerIdentifier = identifier;
129+
}
124130

125131
AFHTTPSessionManager *httpManager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration];
126132
httpManager.responseSerializer = [AFHTTPResponseSerializer serializer];
127133
return httpManager;
128134
}
129135

130-
+ (AFHTTPSessionManager*) sharedBgHttpManagerWithProxy:(NSDictionary *)proxyDict{
136+
+ (AFHTTPSessionManager*) sharedBgHttpManagerWithProxy:(NSDictionary *)proxyDict
137+
sharedContainerIdentifier:(NSString*)identifier{
131138
static AFHTTPSessionManager *httpManager = nil;
132139
static dispatch_once_t onceToken;
133140
dispatch_once(&onceToken, ^{
134141
NSURLSessionConfiguration *configuration = nil;
135142
configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:[QNUserAgent sharedInstance].id];
143+
if (identifier) {
144+
configuration.sharedContainerIdentifier = identifier;
145+
}
146+
136147
if (proxyDict != nil) {
137148
configuration.connectionProxyDictionary = proxyDict;
138149
}
@@ -146,7 +157,7 @@ + (AFHTTPSessionManager*) sharedBgHttpManagerWithProxy:(NSDictionary *)proxyDict
146157
}
147158

148159
- (instancetype)init {
149-
return [self initWithProxy:nil timeout:60 urlConverter:nil upStatsDropRate:-1 dns:nil enableBg:NO];
160+
return [self initWithProxy:nil timeout:60 urlConverter:nil upStatsDropRate:-1 dns:nil enableBg:NO sharedContainerIdentifier:nil];
150161
}
151162

152163
+ (QNResponseInfo *)buildResponseInfo:(NSHTTPURLResponse *)response

QiniuSDK/Storage/QNConfiguration.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ typedef void (^QNConfigurationBuilderBlock)(QNConfigurationBuilder *builder);
8181

8282
@property (readonly) BOOL enableBackgroundUpload;
8383

84+
@property (readonly) NSString* sharedContainerIdentifier;
85+
8486
@property (readonly) float upStatsDropRate;
8587

8688
+ (instancetype)build:(QNConfigurationBuilderBlock)block;
@@ -181,6 +183,8 @@ typedef void (^QNConfigurationBuilderBlock)(QNConfigurationBuilder *builder);
181183
@property (assign) BOOL disableATS;
182184

183185
@property (assign) BOOL enableBackgroundUpload;
186+
187+
@property (nonatomic, assign) NSString* sharedContainerIdentifier;
184188
/**
185189
* 上传统计随机上传的概率,1为全部上传,0为不上传,0.5为随机上传一半。默认0.3
186190
*/

QiniuSDK/Storage/QNConfiguration.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ - (instancetype)initWithBuilder:(QNConfigurationBuilder *)builder {
8787
_dns = nil;
8888
}
8989
_enableBackgroundUpload = builder.enableBackgroundUpload;
90+
_sharedContainerIdentifier = builder.sharedContainerIdentifier;
9091
}
9192
return self;
9293
}
@@ -112,6 +113,7 @@ - (instancetype)init {
112113
_disableATS = YES;
113114

114115
_enableBackgroundUpload = NO;
116+
_sharedContainerIdentifier = nil;
115117

116118
_upStatsRate = 0.3;
117119
}

QiniuSDK/Storage/QNUploadManager.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ - (instancetype)initWithConfiguration:(QNConfiguration *)config {
7171
_config = config;
7272
#if (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000) || (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090)
7373
if (hasNSURLSession()) {
74-
_httpManager = [[QNSessionManager alloc] initWithProxy:config.proxy timeout:config.timeoutInterval urlConverter:config.converter upStatsDropRate:-1 dns:config.dns enableBg:config.enableBackgroundUpload];
74+
_httpManager = [[QNSessionManager alloc] initWithProxy:config.proxy timeout:config.timeoutInterval urlConverter:config.converter upStatsDropRate:-1 dns:config.dns enableBg:config.enableBackgroundUpload sharedContainerIdentifier:config.sharedContainerIdentifier];
7575
}
7676
else {
7777
_httpManager = [[QNHttpManager alloc] initWithTimeout:config.timeoutInterval urlConverter:config.converter upStatsDropRate:config.upStatsDropRate dns:config.dns];

QiniuSDKTests/QNSessionTest.m

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ - (void)testProxy {
9393
(NSString *)kCFStreamPropertyHTTPProxyPort : @8888,
9494
};
9595

96-
QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:proxyDict timeout:60 urlConverter:nil upStatsDropRate:-1 dns:nil enableBg:NO];
96+
QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:proxyDict timeout:60 urlConverter:nil upStatsDropRate:-1 dns:nil enableBg:NO sharedContainerIdentifier:nil];
9797
NSData *data = [@"Hello, World!" dataUsingEncoding:NSUTF8StringEncoding];
9898
__block QNResponseInfo *testInfo = nil;
9999
[httpManager post:@"http://up123.qiniu.com" withData:data withParams:nil withHeaders:nil withStats:nil withCompleteBlock: ^(QNResponseInfo *info, NSDictionary *resp) {
@@ -110,7 +110,7 @@ - (void)testUrlConvert {
110110
return [url stringByReplacingOccurrencesOfString:@"upnono" withString:@"up"];
111111
};
112112

113-
QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:nil timeout:60 urlConverter:c upStatsDropRate:-1 dns:nil enableBg:NO];
113+
QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:nil timeout:60 urlConverter:c upStatsDropRate:-1 dns:nil enableBg:NO sharedContainerIdentifier:nil];
114114
NSData *data = [@"Hello, World!" dataUsingEncoding:NSUTF8StringEncoding];
115115
__block QNResponseInfo *testInfo = nil;
116116
[httpManager post:@"http://upnono.qiniu.com" withData:data withParams:nil withHeaders:nil withStats:nil withCompleteBlock: ^(QNResponseInfo *info, NSDictionary *resp) {
@@ -129,7 +129,7 @@ - (void)testPostIp {
129129
QNResolver *resolver = [[QNResolver alloc] initWithAddres:@"114.114.115.115"];
130130
QNDnsManager *dns = [[QNDnsManager alloc] init:[NSArray arrayWithObject:resolver] networkInfo:[QNNetworkInfo normal]];
131131
[dns putHosts: @"upnonono.qiniu.com" ip: [QNZone zone0].up.ips[0]];
132-
QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:nil timeout:60 urlConverter:nil upStatsDropRate:-1 dns:dns enableBg:NO];
132+
QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:nil timeout:60 urlConverter:nil upStatsDropRate:-1 dns:dns enableBg:NO sharedContainerIdentifier:nil];
133133
[httpManager post:@"http://upnonono.qiniu.com" withData:data withParams:nil withHeaders:nil withStats:nil withCompleteBlock: ^(QNResponseInfo *info, NSDictionary *resp) {
134134
testInfo = info;
135135
} withProgressBlock:nil withCancelBlock:nil];
@@ -141,7 +141,7 @@ - (void)testPostIp {
141141

142142
//- (void)testPostNoPort {
143143
// __block QNResponseInfo *testInfo = nil;
144-
// QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:nil timeout:60 urlConverter:nil dns:nil];
144+
// QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:nil timeout:60 urlConverter:nil upStatsDropRate:-1 dns:nil enableBg:NO sharedContainerIdentifier:nil];
145145
// [httpManager post:@"http://up.qiniug.com:12345/" withData:nil withParams:nil withHeaders:nil withStats:nil withCompleteBlock: ^(QNResponseInfo *info, NSDictionary *resp) {
146146
// testInfo = info;
147147
// } withProgressBlock:nil withCancelBlock:nil];
@@ -150,15 +150,15 @@ - (void)testPostIp {
150150
// NSLog(@"%@", testInfo);
151151
// XCTAssert(testInfo.statusCode < 0, @"Pass");
152152
//}
153-
154-
// travis ci iOS simulator 8.1 failed,其他环境(mac, iOS 9.0)正常,待详细排查
153+
//
154+
//// travis ci iOS simulator 8.1 failed,其他环境(mac, iOS 9.0)正常,待详细排查
155155
//- (void)testPostHttps {
156156
// __block QNResponseInfo *testInfo = nil;
157157
// NSData *data = [@"Hello, World!" dataUsingEncoding:NSUTF8StringEncoding];
158158
// QNResolver *resolver = [[QNResolver alloc] initWithAddres:@"114.114.115.115"];
159159
// QNDnsManager *dns = [[QNDnsManager alloc] init:[NSArray arrayWithObject:resolver] networkInfo:[QNNetworkInfo normal]];
160-
// QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:nil timeout:300 urlConverter:nil dns:nil];
161-
// [httpManager post:@"https://up.qbox.me" withData:data withParams:nil withHeaders:nil withCompleteBlock: ^(QNResponseInfo *info, NSDictionary *resp) {
160+
// QNSessionManager *httpManager = [[QNSessionManager alloc] initWithProxy:nil timeout:300 urlConverter:nil upStatsDropRate:-1 dns:dns enableBg:NO sharedContainerIdentifier:nil];
161+
// [httpManager post:@"https://up.qbox.me" withData:data withParams:nil withHeaders:nil withStats:nil withCompleteBlock: ^(QNResponseInfo *info, NSDictionary *resp) {
162162
// testInfo = info;
163163
// } withProgressBlock:nil withCancelBlock:nil];
164164
//

0 commit comments

Comments
 (0)