检查AmazonS3foriOS中的并行下载
你好。我想知道是否有一种方法可以使用Amazon的标准iOS SDK并行下载多个图像 它似乎是按顺序下载,而不是并行下载 我使用此委托计算下载的图像数量与请求的总数检查AmazonS3foriOS中的并行下载,ios,objective-c,amazon-s3,Ios,Objective C,Amazon S3,你好。我想知道是否有一种方法可以使用Amazon的标准iOS SDK并行下载多个图像 它似乎是按顺序下载,而不是并行下载 我使用此委托计算下载的图像数量与请求的总数 -(void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response 当我在每次下载完成时检查时间戳时,每个图像的持续时间约为3-4秒: 11:46:22.744:图像1已完成下载 11:4
-(void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response
当我在每次下载完成时检查时间戳时,每个图像的持续时间约为3-4秒:
- 11:46:22.744:图像1已完成下载
- 11:46:27.942:图像2已完成下载
- 11:46:31.085:图像3已完成下载
- 11:46:34.044:图像4已完成下载
[self.transferManager downloadFile:targetFile bucket:S3_BUCKET key:s3Key]
有没有办法在代码中添加一些东西来并行下载图像?
此外,是否有一个程序来了解/监控所有下载请求是否并行移动 我不确定您使用的是哪个版本,但对于版本2,您可以控制异步上载/下载是按顺序还是并行进行。关于这些主题的更多细节,有很多非常有用的信息 下面我附上一个如何并行上传文件的示例。下载也一样。希望这有帮助。T
-(void) uploadAllFileRequests
{
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
NSMutableArray *tasks = [NSMutableArray new];
for (__block AWSS3TransferManagerUploadRequest *uploadRequestLocal in self.arrayOfUploadRequests)
{
[tasks addObject:[[transferManager upload:uploadRequestLocal] continueWithBlock:^id(BFTask *task) {
if (task.error != nil) {
if( task.error.code != AWSS3TransferManagerErrorCancelled
&&
task.error.code != AWSS3TransferManagerErrorPaused
)
{
NSLog(@"ERROR");
}
} else {
NSLog(@"SUCCESS");
}
return nil;
}]];
}
[[BFTask taskForCompletionOfAllTasks:tasks] continueWithSuccessBlock:^id(BFTask *task)
{
NSLog(@"Finished all");
return nil;
}];
}
这里,self.arrayOfUploadRequests是一个AWSS3 TransferManagerRuploadrequest数组。谢谢。这个逻辑在V2上工作。我还有一个在V1上运行的系统。V1是否有类似的方法?我知道有“S3TransferOperation.downloadFileOperation.isFinished”在下载完成之前,我是否需要每次调用它?@user3932017抱歉,我不确定它在版本1上如何工作。