2 django static heroku amazon-s3 amazon-web-services
我在 Django 中有一个应用程序,并将其静态文件放在 AWS S3 上的存储桶中。但是,当我尝试在应用程序中连接时,存储桶 S3 返回 403 禁止静态文件。
我的存储桶配置了公共访问权限。
如果我尝试直接访问该文件,则会返回 XML 错误,如下所示:
该 XML 文件似乎没有任何与之关联的样式信息。文档树如下所示。
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>2A64DBA5BD88AC1C</RequestId>
<HostId>
K7NHlv7xhPAL6626LCHLayoR4BauqARf6KaTtKUYKQsakNqQ1LL6RnuIwxUqjMP0q6UjMmiW7Yw=
</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)
我的存储桶有文件:
我尝试更改设置,将 AWS_DEFAULT_ACL 设置为“public”、“private”和 None,但问题仍然存在...
Obs.:我的应用程序在 Heroku 中。
我怎么解决这个问题?
公共访问需要很多东西。您是否已完成以下所有操作?
存储桶 > 权限 > 阻止公共访问按钮 > 阻止所有公共访问设置为关闭。
存储桶 > 存储桶策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKETNAME/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
最后一项仅适用于静态网站托管。正如您所提到的,您没有提供 .html 文件,因为您正在构建 Django 应用程序。不过,我还是把它留在这里,以防有人发现它有用。
存储桶 > 属性 > 静态网站托管 > 使用此存储桶托管网站。
| 归档时间: |
|
| 查看次数: |
3981 次 |
| 最近记录: |