AWS S3 上传不工作

AWS S3 uploading not working

我正在使用以下方法将图像上传到 S3。奇怪的是,它甚至没有进入街区。所以,没有错误,没有成功指示......它根本没有 return 任何东西。我以前从未见过这种情况。

    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,它甚至没有执行一次。

找到了!

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

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

谢谢!