从AWS S3(非公有桶)下载Laravel中的文件



我可以将所有文件保存在bucket中,但下载时遇到困难。我的代码是:

$url = Storage::disk('s3')->temporaryUrl(
$request->file, now()->addMinutes(10)
);
return Storage::disk('s3')->download($url);

存储在$request->file

中的完整文件路径示例路径:https://bucket_name.privacy_region_info/folder_inside_bucket/cTymyY2gzakfczO3j3H2TtbJX4eeRW4Uj073CZUW

我得到以下https://prnt.sc/1ip4g77

我是否不理解生成临时url的目的?如何从S3非公有桶下载文件?

顺便说一句,我使用的是Laravel 8和league/flysystem- laws -s3-v3 1.0.29.

您显示的错误消息表明您的用户没有正确的权限,或者文件不存在。

如果你确定文件存在,我会怀疑是权限问题。

在AWS IAM中,确保用户有一个附加的策略来授予正确的权限。

在这种情况下,从评论中,我可以看到用户只有"写"。权限。你需要明确的"阅读";权限。

最新更新