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

Laravel Livewire uploading files to AWS S3 bucket

我正在尝试使用 laravel livewire 上传文件。

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

默认情况下,我的 s3 存储桶 public 访问已关闭。

当我上传文件时出现 403 禁止错误。请求 URL 是:

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 将不胜感激

谢谢 丹尼

这里的问题是允许 cross-origin 请求。我必须将以下代码插入到 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>