【发布时间】:2013-09-08 14:18:34
【问题描述】:
所以我关注了这个问题How to set-up a Django project with django-storages and Amazon S3, but with different folders for static files and media files?,以便让我的 django 应用程序将媒体文件上传到我的亚马逊 S3 存储桶。顺便说一句,我正在使用 django-oscar。 上传图片后一切似乎都正常,但是当我重新加载页面时,图片消失了,我收到了 404 错误。 我的静态文件工作正常。我没有发现任何问题。
更新:
我已将存储桶策略更改为公开,但我仍然无法将图像加载到我的缩略图上:
{
"Version":"2008-10-17",
"Statement":[{
"Sid":"AllowPublicRead",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::bucket/*"
]
}
]
}
有什么想法吗?如果我单击链接,我可以看到图像,但从缩略图中它不会加载并给我 404
当我尝试访问 404 链接时,我得到一个
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>cache/7b/4d/7b4d647e0faa51cb4226f13b780ba320.jpg</Key>
<RequestId>4BF12C367D0C65D1</RequestId>
<HostId>
b7c4LraxQtVGMe3bE+hAPOSBo9nrHE8DiyLbsBchfmdAul8F0Uw0+pKkO+PM6z/i
</HostId>
</Error>
更新: 我问了heroku上的人,这是他们给我的答案:
你好,看看周围,它看起来像 Django 的 URL 生成不正确。我为您的一张图片生成了一个新网址 手动测试它。新图像位于此处: http://s3.amazonaws.com/comprasonline-brazil/media/cache/bc/f5/bcf55748e916eb1979eab9e2713fa97f.jpg?AWSAccessKeyId=AKIAJVPBLRLYHX6EQKUA&Expires=1379587008&Signature=QiU8OvknWHoK7R9YsM%2FG8V%2F4v8s%3D 请注意,格式有点不同,它有 '/media/ in /cache/b5/f5 等的前面。然后我可以查看图像,如 根据此屏幕截图。您可能需要重新生成一个新的 URL 作为这个 当你得到这个时,它可能已经过期了。看起来像 Django 没有为这些上传的资产生成正确的 URL。这 我用来生成新 URL 的页面位于此处。你是 知道可能会影响这一点的任何设置吗?是不是有点 超出了我们的范围,我找不到任何 django-oscar 设置 它设置了'/cache/'目录。干杯,里斯
这是 django-oscar 的问题吗?如果是的话,有人知道我该如何解决这个问题吗?
【问题讨论】:
标签: django heroku amazon-web-services amazon-s3 django-oscar