微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel Livewire将文件上传到AWS S3存储桶

如何解决Laravel Livewire将文件上传到AWS S3存储桶

我正在尝试使用laravel livewire更新文件

我已经创建了我的S3存储桶。我还使用AWSS3FullAccessRights创建了用户

认情况下,我的s3存储桶已关闭公共访问权限。

当我上传文件时,出现403禁止错误。请求网址为:

https://[bucket_name].s3.ap-southeast-2.amazonaws.com/livewire-tmp/HeFkgK7BTeFv2voaPzMPJdwqX69KQ4-Metac2FtcGxlLW1wNC1maWxlLm1wNA%3D%3D-.mp4?x-amz-acl=private&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAS3BSKYVMYVLYCB44%2F20201025%2Fap-southeast-2%2Fs3%2Faws4_request&X-Amz-Date=20201025T041359Z&X-Amz-SignedHeaders=host%3Bx-amz-acl&X-Amz-Expires=300&X-Amz-Signature=9e87a654cbeab84772c18a950741027e7eeea1ad41b28e7b1c84a60cf2266147.

文件根本没有上传到S3。我的livewire设置文件设置为s3。我已经将密钥,机密,区域和存储区名称输入到我的.env文件中。

我需要在AWS上设置任何其他权限才能使其正常工作。我看过的所有教程都不起作用,也不知道为什么。

任何heklp都会感激

谢谢 丹尼

解决方法

这里的问题是允许跨域请求。我必须将以下代码插入S3存储桶的CORS配置中

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://www.example1.com</AllowedOrigin>

   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>

   <AllowedHeader>*</AllowedHeader>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>http://www.example2.com</AllowedOrigin>

   <AllowedMethod>PUT</AllowedMethod>
   <AllowedMethod>POST</AllowedMethod>
   <AllowedMethod>DELETE</AllowedMethod>

   <AllowedHeader>*</AllowedHeader>
 </CORSRule>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。