AWS S3 putObjectAsync PHP / Laravel

发布时间:2020-07-07 07:11

我正在使用AWS开发工具包s3和Laravel上传文件。当文件小于100 MB时,我使用putObject,否则使用putObjectAsyncputObjectAsync返回GuzzleHttp的承诺,状态为“待处理”,但是由于某种原因,除非我使用wait(),否则文件不会上传。

这是一个问题,因为它应该在许诺后上传,但是检查我们的s3存储桶时,没有添加/上传对象。

我在下面使用此方法:

$s3disk = Storage::disk('s3');

$s3Client = $s3disk->getDriver()->getAdapter()->getClient();

$uploader = $s3Client->putObjectAsync([
    "Bucket" => $bucket_name,
    "Key" => $file_name,
    "SourceFile" => $local_file_path,
]);

有没有一种方法可以检查异步对象的状态?这个过程正常吗?我们应该等待多长时间才能成功上传对象?

回答1

似乎我除了使用putObjectAsync之外,没有其他方法可以在AWS开发工具包的wait()中使用Async。我在此线程中找到了答案-> I queued my file upload to s3