所以我关注了这个问题How to setup a Django project with django-storages and Amazon S3, but with different folder 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 似乎不正确。我手动为您的一张图片生成了一个新 URL 以对其进行测试。新图像位于此处: http ://s3.amazonaws.com/comprasonline-brazil/media/cache/bc/f5/bcf55748e916eb1979eab9e2713fa97f.jpg?AWSAccessKeyId=AKIAJVPBLRLYHX6EQKUA&Expires=1379587008&Signature=QiU8OvknWHoK7R9YsM%2DFG8%4R9YsM%2DFG8%4 请注意,格式有点不同,它在 /cache/b5/f5 等前面有 '/media/。然后我可以根据这个屏幕截图查看图像。您可能需要重新生成一个新的 URL,因为在您获得此 URL 时该 URL 可能已经过期。看起来 Django 没有为这些上传的资产生成正确的 URL。我用来生成新 URL 的页面位于此处。您是否知道任何可能会影响这一点的设置?这有点超出了我们的范围,我找不到任何设置“/cache/”目录的 django-oscar 设置。干杯,里斯
我这是一个 django-oscar 问题?如果是的话,任何人都知道我该如何解决这个问题?