我正在使用以下内容将图像上传到S3。奇怪的是,它甚至没有进入Block。所以,没有错误,没有成功指示......它根本不会返回任何东西。我以前没见过这件事。
AWSS3TransferManagerUploadRequest *amazonUploadRequest = [AWSS3TransferManagerUploadRequest new];
amazonUploadRequest.bucket = AWS_PICTURE_BUCKET;
amazonUploadRequest.body = fileUrl;
amazonUploadRequest.key = key;
amazonUploadRequest.contentType = @"image/jpeg";
AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
[[transferManager upload:amazonUploadRequest] continueWithBlock:^id _Nullable(AWSTask * _Nonnull task) {
//Never reaches here.
if (task.error == nil) {
completionBlock();
} else {
errorBlock(task.error);
}
return nil;
}];
有人见过这个问题吗?我过去曾使用它来循环上传1或2张图像甚至50张图像。我正在尝试现在100,它甚至没有执行一次。
答案 0 :(得分:0)
发现它!
所以我每次上传时都异步使用dispatch_semaphore_t
,结果是GCD has a 64 thread limit,而我正在使用100 +上传。这使得所有上传等待(DISPATCH_TIME_FOREVER),因此似乎AWS方法没有响应。
我通过调整dispatch_semaphore_t
并删除我的异步块以进行单独上传来修复它。如果您发现自己处于这种情况,请单击pause
按钮并查找一次运行的线程数。
谢谢!