我正在使用AWS开发工具包s3和Laravel上传文件。当文件小于100 MB时,我使用putObject
,否则使用putObjectAsync
。 putObjectAsync
返回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,
]);
有没有一种方法可以检查异步对象的状态?这个过程正常吗?我们应该等待多长时间才能成功上传对象?
似乎我除了使用putObjectAsync
之外,没有其他方法可以在AWS开发工具包的wait()
中使用Async。我在此线程中找到了答案-> I queued my file upload to s3。