aws.s3
aws.s3 copied to clipboard
progress reaches 1.00 but completion block called after 1 minute
Uploading a wav file with multipart upload task. The larger the file the longer it will take from reaching 100% to calling completion block.
More precisely, the progress reaches 1.00 twice. The second one is the REAL completed one.
2019-07-21 17:04:04.147453+0800 KSPublicCloudUploadHelper[17529:107629] 0.992066
2019-07-21 17:04:04.147564+0800 KSPublicCloudUploadHelper[17529:107630] 0.993058
2019-07-21 17:04:04.147657+0800 KSPublicCloudUploadHelper[17529:107629] 0.994049
2019-07-21 17:04:04.147944+0800 KSPublicCloudUploadHelper[17529:107629] 0.995041
2019-07-21 17:04:04.148332+0800 KSPublicCloudUploadHelper[17529:107631] 0.996033
2019-07-21 17:04:04.148436+0800 KSPublicCloudUploadHelper[17529:107630] 0.997025
2019-07-21 17:04:04.148907+0800 KSPublicCloudUploadHelper[17529:107630] 0.998016
2019-07-21 17:04:04.149274+0800 KSPublicCloudUploadHelper[17529:107629] 0.999008
2019-07-21 17:04:04.149394+0800 KSPublicCloudUploadHelper[17529:107631] 1.000000
2019-07-21 17:04:10.198093+0800 KSPublicCloudUploadHelper[17529:107630] 1.000000
2019-07-21 17:04:10.202289+0800 KSPublicCloudUploadHelper[17529:107630] p4/attachment/551c6c0d506223960d7c6156fd555149.wav
AWSS3TransferUtilityMultiPartUploadExpression *expression = [[AWSS3TransferUtilityMultiPartUploadExpression alloc] init];
expression.progressBlock = ^(AWSS3TransferUtilityMultiPartUploadTask * _Nonnull task, NSProgress * _Nonnull progress) {
updateProgress(progress);
};
AWSTask<AWSS3TransferUtilityMultiPartUploadTask *> *task =
[[[AWSS3TransferUtility defaultS3TransferUtility] uploadDataUsingMultiPart:fileData
bucket:bucketName
key:objectKey
contentType:@"application/octet-stream"
expression:expression
completionHandler:^(AWSS3TransferUtilityMultiPartUploadTask * _Nonnull task, NSError * _Nullable error) {
complete(task, error);
}] continueWithBlock:^id _Nullable(AWSTask<AWSS3TransferUtilityMultiPartUploadTask *> * _Nonnull t) {
if (t.error) {
NSLog(@"%@", t.error);
}
return nil;
}];
return task;