图像不是从 Amazon S3 存储桶加载的

Images are not loading from an Amazon S3 bucket

我正在做一个 Django 项目。我在 Amazon S3 上托管了我的静态文件。它已成功上传到它。但是,当我 运行 服务器时,图像没有加载。 当我检查它显示的图像字段时: https://django-ecommerce-files.s3.amazonaws.com/images/logo.png%22%20id=%22image%22%20style=%22width:%2040px;%20height:40px%22%3E 当我双击它时。它显示此错误:

<Error>
  <Code>AccessDenied</Code>
  <Message>Access Denied</Message>
  <RequestId>07PX6KHYASHT3008</RequestId>
  <HostId>pJCxChq1JHlw/GL0Zy/W+PvX1TevOf/C60Huyidi8+0GMAs8geYlXSrEgo6m9vllL0PouTn6NAA= 
  </HostId>
</Error>

我不确定这是否有效。您可以尝试在您的 s3 上启用静态托管吗?

  1. 转到你的 s3。
  2. 转到属性,向下滚动到底部
  3. 启用静态托管

s3 上的 png 文件看起来像这样(link 顺便说一句):

https://aws-cicd-react.s3.ap-southeast-1.amazonaws.com/logo512.png

附录: 如果您想查看文件的 url:

  1. 在您的 s3 中,单击该文件,然后转到属性
  2. 查看对象URL

使用 S3 存储桶时,需要使您的资源(文件)public易于访问。您可以在上传到 S3 时以编程方式执行此操作,也可以从 AWS 控制台执行此操作。请检查如何启用 public 访问您的文件 here

确保您已更改 public S3 存储桶的访问设置,以便它允许您的应用程序访问文件(使用正确的凭据)。

您的要求可能会有所不同,因此请查看他们的 user manual

检查存储桶下的权限选项卡。

或者,您也可以查看 S3 存储桶上允许的操作,它必须配置为允许 read/write。参考 the docs 几个例子