TOSCredential *credential = [[TOSCredential alloc] initWithAccessKey:@"accesskey" secretKey:@"secretkey"];
TOSEndpoint *tosEndpoint = [[TOSEndpoint alloc] initWithURLString:@"endpoint" withRegion:@"region"];
TOSClientConfiguration *config = [[TOSClientConfiguration alloc] initWithEndpoint:tosEndpoint credential:credential];
TOSClient *client = [[TOSClient alloc] initWithConfiguration:config];
TOSCreateMultipartUploadInput *create = [TOSCreateMultipartUploadInput new];
create.tosBucket = @"bucket-name";
create.tosKey = @"object-name";
task = [client createMultipartUpload:create];
[task waitUntilFinished];
TOSCreateMultipartUploadOutput *createOutput = task.result;
TOSUploadPartCopyInput *part1 = [TOSUploadPartCopyInput new];
part1.tosBucket = @"bucket-name";
part1.tosKey = @"object-name";
part1.tosSrcBucket = @"src-bucket-name";
part1.tosSrcKey = @"src-object-name";
part1.tosCopySourceRangeStart = @0;
part1.tosPartNumber = 1;
task = [client uploadPartCopy:part1];
[task waitUntilFinished];
TOSUploadPartCopyOutput *uploadOutput = task.result;
uploadOutput.tosETag = [uploadOutput.tosETag stringByReplacingOccurrencesOfString:@"\"" withString:@""];
TOSCompleteMultipartUploadInput *complete = [TOSCompleteMultipartUploadInput new];
complete.tosBucket = createOutput.bucket;
complete.tosKey = createOutput.key;
complete.tosUploadId = createOutput.uploadId;
NSMutableArray *array = [NSMutableArray array];
TOSUploadedPart *uploadedPart1 = [TOSUploadedPart new];
uploadedPart1.tosPartNumber = uploadOutput.tosPartNumber;
uploadedPart1.tosETag = uploadOutput.tosETag;
[array addObject:uploadedPart1];
task = [client completeMultipartUpload:complete];
[task waitUntilFinished];
TOSCompleteMultipartUploadOutput *comleteOutput = task.result;