// // OBSInitiateMultipartUploadModel.h // OBS // // Created by MaxZhang on 01/12/2017. // Copyright © 2017 obs. All rights reserved. // #ifndef OBSInitiateMultipartUploadModel_h #define OBSInitiateMultipartUploadModel_h #import "OBSBaseNetworking.h" #import "OBSClient.h" #import "OBSServiceBaseModel.h" #import "OBSServiceConstDefinition.h" @class OBSAbstractEncryption; //request #pragma mark - request /** 初始化多段上传任务 */ @protocol OBSInitiateMultipartUploadProtocol @required /** 桶名 */ @property (nonatomic, strong, nonnull) NSString *bucketName; /** 对象名 */ @property (nonatomic, strong, nonnull) NSString *objectKey; /** 对象访问策略 */ @property (nonatomic, assign) OBSACLPolicy objectACLPolicy; /** 存储类型 */ @property (nonatomic, assign) OBSStorageClass storageClass; /** 元数据 */ @property (nonatomic, strong, nullable) NSDictionary *metaDataDict; /** 对象重定向 */ @property (nonatomic, strong, nonnull) NSString *websiteRedirectLocation; /** 加密方式 */ @property (nonatomic, strong, nonnull) __kindof OBSAbstractEncryption *encryption; /** MIME类型 */ @property (nonatomic, assign) OBSContentType contentType; @end /** 初始化多段上传任务request */ @interface OBSInitiateMultipartUploadRequest : OBSBaseRequest /** 桶名 */ @property (nonatomic, strong, nonnull) NSString *bucketName; /** 对象KEY */ @property (nonatomic, strong, nonnull) NSString *objectKey; /** 对象ACL */ @property (nonatomic, assign) OBSACLPolicy objectACLPolicy; /** 存储模式 */ @property (nonatomic, assign) OBSStorageClass storageClass; /** 元数据 */ @property (nonatomic, strong, nullable) NSDictionary *metaDataDict; /** 重定向网址 */ @property (nonatomic, strong, nonnull) NSString *websiteRedirectLocation; /** 加密方式 */ @property (nonatomic, strong, nullable) __kindof OBSAbstractEncryption *encryption; /** MIME类型 */ @property (nonatomic, assign) OBSContentType contentType; /** 自定义MIME类型 */ @property (nonatomic, strong, nonnull) NSString *customContentType; /** 最终映射MIME类型 */ @property (nonatomic, strong, nonnull) NSString *finalContentType; /** 初始化多段上传任务request @param bucketName 桶名 @param objectKey 对象KEY @return 初始化多段上传任务request */ -(instancetype)initWithBucketName:(NSString*) bucketName objectKey: (NSString*) objectKey; @end #pragma mark - networking request @interface OBSNetworkingInitiateMultipartUploadRequest : OBSServiceNetworkingCommandRequest @end //response #pragma mark - response /** 初始化多段上传任务response */ @interface OBSInitiateMultipartUploadResponse: OBSServiceResponse /** 桶名 */ @property (nonatomic, strong, nonnull) NSString *bucketName; /** 对象名 */ @property (nonatomic, strong, nonnull) NSString *objectKey; /** 多段上传ID */ @property (nonatomic, strong, nonnull) NSString *uploadID; /** 存储类型 */ @property (nonatomic, assign) OBSStorageClass storageClass; /** 加密方式 */ @property (nonatomic, strong, nonnull) __kindof OBSAbstractEncryption *encryption; @end //client method #pragma mark - client method @interface OBSClient(initiateMultipartUpload) /** 初始化多段上传任务 @param request 初始化多段上传任务request @param completionHandler 初始化多段上传任务回调 @return OBSBFTask */ - (OBSBFTask*)initiateMultipartUpload:(__kindof OBSBaseRequest*)request completionHandler:(void (^)(OBSInitiateMultipartUploadResponse * response, NSError * error))completionHandler; @end #endif /* OBSInitiateMultipartUploadModel_h */