AliyunOSSiOSTests/SequentialMultipartUploadTests.m [170:201]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
    
    __weak typeof(request) weakRequest = request;
    request.uploadProgress = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) {
        if (totalBytesSent > totalBytesExpectedToSend / 2) {
            [weakRequest cancel];
        }
    };
    
    OSSTask *task = [self.client sequentialMultipartUpload:request];
    [[task continueWithBlock:^OSSTask* (OSSTask* t) {
        XCTAssertNotNil(t.error);
        XCTAssertEqual(t.error.code, OSSClientErrorCodeTaskCancelled);
        
        return nil;
    }] waitUntilFinished];
    
    OSSResumableUploadRequest *resumedRequest = [OSSResumableUploadRequest new];
    resumedRequest.bucketName = self.bucketName;
    resumedRequest.objectKey = @"sequential-multipart";
    resumedRequest.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"];
    resumedRequest.deleteUploadIdOnCancelling = NO;
    resumedRequest.crcFlag = OSSRequestCRCOpen;
    resumedRequest.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
//    resumedRequest.contentSHA1 = [OSSUtil sha1WithFilePath:request.uploadingFileURL.path];
    
    task = [self.client sequentialMultipartUpload:resumedRequest];
    [[task continueWithBlock:^OSSTask* (OSSTask* t) {
        XCTAssertNil(t.error);
        
        return nil;
    }] waitUntilFinished];
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



AliyunOSSiOSTests/SequentialMultipartUploadTests.m [211:242]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    request.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
    
    __weak typeof(request) weakRequest = request;
    request.uploadProgress = ^(int64_t bytesSent, int64_t totalBytesSent, int64_t totalBytesExpectedToSend) {
        if (totalBytesSent > totalBytesExpectedToSend / 2) {
            [weakRequest cancel];
        }
    };
    
    OSSTask *task = [self.client sequentialMultipartUpload:request];
    [[task continueWithBlock:^OSSTask* (OSSTask* t) {
        XCTAssertNotNil(t.error);
        XCTAssertEqual(t.error.code, OSSClientErrorCodeTaskCancelled);
        
        return nil;
    }] waitUntilFinished];
    
    OSSResumableUploadRequest *resumedRequest = [OSSResumableUploadRequest new];
    resumedRequest.bucketName = self.bucketName;
    resumedRequest.objectKey = @"sequential-multipart";
    resumedRequest.uploadingFileURL = [[NSBundle mainBundle] URLForResource:@"wangwang" withExtension:@"zip"];
    resumedRequest.deleteUploadIdOnCancelling = NO;
    resumedRequest.crcFlag = OSSRequestCRCOpen;
    resumedRequest.recordDirectoryPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
//    resumedRequest.contentSHA1 = [OSSUtil sha1WithFilePath:request.uploadingFileURL.path];
    
    task = [self.client sequentialMultipartUpload:resumedRequest];
    [[task continueWithBlock:^OSSTask* (OSSTask* t) {
        XCTAssertNil(t.error);
        
        return nil;
    }] waitUntilFinished];
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



