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

2024-10-03 02:44:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个Django项目。我在AmazonS3上托管了我的静态文件。它已成功上载到它。但是,当我运行服务器时,图像没有加载。 当我检查图像字段时,它显示: 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>

Tags: 文件项目djangohttps图像message静态code
3条回答

使用S3 bucket时,需要使您的资源(文件)可以公开访问。您可以在上传到S3时以编程方式进行,也可以从AWS控制台进行。请检查如何启用对文件的公共访问here

我不确定这是否有效。您可以尝试在s3上启用静态主机吗

  1. 去你的s3
  2. 转到属性,向下滚动至底部
  3. 启用静态宿主

s3上的png文件如下所示(顺便说一句,链接可以工作):

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

增编: 如果要查看文件的url:

  1. 在s3中,单击该文件,然后转到属性
  2. 查看对象URLenter image description here

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

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

检查bucket下的Permissions选项卡

或者,您也可以查看S3存储桶上允许的操作,它必须配置为允许读/写。参考the docs了解一些示例

相关问题 更多 >