我可以将所有文件保存在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中,确保用户有一个附加的策略来授予正确的权限。
在这种情况下,从评论中,我可以看到用户只有"写"。权限。你需要明确的"阅读";权限。