123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- //
- // QNUploadOption.m
- // QiniuSDK
- //
- // Created by bailong on 14/10/4.
- // Copyright (c) 2014年 Qiniu. All rights reserved.
- //
- #import "QNUploadOption.h"
- #import "QNUploadManager.h"
- static NSString *mime(NSString *mimeType) {
- if (mimeType == nil || [mimeType isEqualToString:@""]) {
- return @"application/octet-stream";
- }
- return mimeType;
- }
- @implementation QNUploadOption
- + (NSDictionary *)filterParam:(NSDictionary *)params {
- NSMutableDictionary *ret = [NSMutableDictionary dictionary];
- if (params == nil) {
- return ret;
- }
- [params enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj, BOOL *stop) {
- if ([key hasPrefix:@"x:"] && ![obj isEqualToString:@""]) {
- ret[key] = obj;
- } else {
- NSLog(@"参数%@设置无效,请检查参数格式", key);
- }
- }];
- return ret;
- }
- + (NSDictionary *)filterMetaDataParam:(NSDictionary *)params {
- NSMutableDictionary *ret = [NSMutableDictionary dictionary];
- if (params == nil) {
- return ret;
- }
- [params enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj, BOOL *stop) {
- if ([key hasPrefix:@"x-qn-meta-"] && ![obj isEqualToString:@""]) {
- ret[key] = obj;
- } else {
- NSLog(@"参数%@设置无效,请检查参数格式", key);
- }
- }];
- return ret;
- }
- - (instancetype)initWithProgressHandler:(QNUpProgressHandler)progress {
- return [self initWithMime:nil progressHandler:progress params:nil checkCrc:NO cancellationSignal:nil];
- }
- - (instancetype)initWithByteProgressHandler:(QNUpByteProgressHandler)progress {
- return [self initWithMime:nil byteProgressHandler:progress params:nil checkCrc:NO cancellationSignal:nil];
- }
- - (instancetype)initWithMime:(NSString *)mimeType
- progressHandler:(QNUpProgressHandler)progress
- params:(NSDictionary *)params
- checkCrc:(BOOL)check
- cancellationSignal:(QNUpCancellationSignal)cancel {
- return [self initWithMime:mimeType
- progressHandler:progress
- params:params
- metaDataParams:nil
- checkCrc:check
- cancellationSignal:cancel];
- }
- - (instancetype)initWithMime:(NSString *)mimeType
- byteProgressHandler:(QNUpByteProgressHandler)progress
- params:(NSDictionary *)params
- checkCrc:(BOOL)check
- cancellationSignal:(QNUpCancellationSignal)cancellation {
- return [self initWithMime:mimeType
- byteProgressHandler:progress
- params:params
- metaDataParams:nil
- checkCrc:check
- cancellationSignal:cancellation];
- }
- - (instancetype)initWithMime:(NSString *)mimeType
- progressHandler:(QNUpProgressHandler)progress
- params:(NSDictionary *)params
- metaDataParams:(NSDictionary *)metaDataParams
- checkCrc:(BOOL)check
- cancellationSignal:(QNUpCancellationSignal)cancellation{
- if (self = [super init]) {
- _mimeType = mime(mimeType);
- _progressHandler = progress != nil ? progress : ^(NSString *key, float percent) {};
- _params = [QNUploadOption filterParam:params];
- _metaDataParam = [QNUploadOption filterMetaDataParam:metaDataParams];
- _checkCrc = check;
- _cancellationSignal = cancellation != nil ? cancellation : ^BOOL() {
- return NO;
- };
- }
- return self;
- }
- - (instancetype)initWithMime:(NSString *)mimeType
- byteProgressHandler:(QNUpByteProgressHandler)progress
- params:(NSDictionary *)params
- metaDataParams:(NSDictionary *)metaDataParams
- checkCrc:(BOOL)check
- cancellationSignal:(QNUpCancellationSignal)cancellation {
- if (self = [super init]) {
- _mimeType = mime(mimeType);
- _byteProgressHandler = progress != nil ? progress : ^(NSString *key, long long uploadBytes, long long totalBytes) {};
- _params = [QNUploadOption filterParam:params];
- _metaDataParam = [QNUploadOption filterMetaDataParam:metaDataParams];
- _checkCrc = check;
- _cancellationSignal = cancellation != nil ? cancellation : ^BOOL() {
- return NO;
- };
- }
- return self;
- }
- + (instancetype)defaultOptions {
- return [[QNUploadOption alloc] initWithMime:nil byteProgressHandler:nil params:nil checkCrc:NO cancellationSignal:nil];
- }
- @end
|