AWS S3上传无法正常工作

时间:2017-03-20 18:48:38

标签: ios objective-c amazon-web-services amazon-s3 aws-sdk

我正在使用以下内容将图像上传到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,它甚至没有执行一次。

1 个答案:

答案 0 :(得分:0)

发现它!

所以我每次上传时都异步使用dispatch_semaphore_t,结果是GCD has a 64 thread limit,而我正在使用100 +上传。这使得所有上传等待(DISPATCH_TIME_FOREVER),因此似乎AWS方法没有响应。

我通过调整dispatch_semaphore_t并删除我的异步块以进行单独上传来修复它。如果您发现自己处于这种情况,请单击pause按钮并查找一次运行的线程数。

谢谢!