123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- //
- // QNConfiguration.m
- // QiniuSDK
- //
- // Created by bailong on 15/5/21.
- // Copyright (c) 2015年 Qiniu. All rights reserved.
- //
- #import "QNConfiguration.h"
- #import "QNResponseInfo.h"
- #import "QNUpToken.h"
- #import "QNReportConfig.h"
- #import "QNAutoZone.h"
- const UInt32 kQNBlockSize = 4 * 1024 * 1024;
- const UInt32 kQNDefaultDnsCacheTime = 2 * 60;
- @implementation QNConfiguration
- + (instancetype)defaultConfiguration{
- QNConfigurationBuilder *builder = [[QNConfigurationBuilder alloc] init];
- return [[QNConfiguration alloc] initWithBuilder:builder];
- }
- + (instancetype)build:(QNConfigurationBuilderBlock)block {
- QNConfigurationBuilder *builder = [[QNConfigurationBuilder alloc] init];
- block(builder);
- return [[QNConfiguration alloc] initWithBuilder:builder];
- }
- - (instancetype)initWithBuilder:(QNConfigurationBuilder *)builder {
- if (self = [super init]) {
- _useConcurrentResumeUpload = builder.useConcurrentResumeUpload;
- _resumeUploadVersion = builder.resumeUploadVersion;
- _concurrentTaskCount = builder.concurrentTaskCount;
-
- _chunkSize = builder.chunkSize;
- if (builder.resumeUploadVersion == QNResumeUploadVersionV1) {
- if (_chunkSize < 1024) {
- _chunkSize = 1024;
- }
- } else if (builder.resumeUploadVersion == QNResumeUploadVersionV2) {
- if (_chunkSize < 1024 * 1024) {
- _chunkSize = 1024 * 1024;
- }
- }
-
- _putThreshold = builder.putThreshold;
- _retryMax = builder.retryMax;
- _retryInterval = builder.retryInterval;
- _timeoutInterval = builder.timeoutInterval;
- _recorder = builder.recorder;
- _recorderKeyGen = builder.recorderKeyGen;
- _proxy = builder.proxy;
- _converter = builder.converter;
-
- _zone = builder.zone;
- _useHttps = builder.useHttps;
- _allowBackupHost = builder.allowBackupHost;
- }
- return self;
- }
- @end
- @interface QNGlobalConfiguration()
- @end
- @implementation QNGlobalConfiguration
- + (instancetype)shared{
- static QNGlobalConfiguration *config = nil;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- config = [[QNGlobalConfiguration alloc] init];
- [config setupData];
- });
- return config;
- }
- - (void)setupData{
- _isDnsOpen = YES;
- _dnsCacheDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches/Dns"];
- _dnsRepreHostNum = 2;
- _dnsCacheTime = kQNDefaultDnsCacheTime;
- _globalHostFrozenTime = 10;
- _partialHostFrozenTime = 5*60;
-
- _connectCheckTimeout = 3;
- _connectCheckURLStrings = @[@"https://www.qiniu.com", @"https://www.baidu.com", @"https://www.google.com"];
- }
- @end
- @implementation QNConfigurationBuilder
- - (instancetype)init {
- if (self = [super init]) {
- _zone = [[QNAutoZone alloc] init];
- _chunkSize = 2 * 1024 * 1024;
- _putThreshold = 4 * 1024 * 1024;
- _retryMax = 1;
- _timeoutInterval = 90;
- _retryInterval = 0.5;
- _recorder = nil;
- _recorderKeyGen = nil;
- _proxy = nil;
- _converter = nil;
- _useHttps = YES;
- _allowBackupHost = YES;
- _useConcurrentResumeUpload = NO;
- _resumeUploadVersion = QNResumeUploadVersionV1;
- _concurrentTaskCount = 3;
- }
- return self;
- }
- @end
|