【问题标题】:django heroku media files 404 error with amazon s3亚马逊 s3 的 django heroku 媒体文件 404 错误
【发布时间】: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


    【解决方案1】:

    您的文件似乎是私有的,并且正在生成一个签名来访问它们。默认情况下,上传到 s3 的文件设置为私有。您必须将文件明确设置为公开。

    S3 不是直接提供文件的最佳选择,您最好使用 Cloudfront,并将您的 s3 存储桶作为源。

    【讨论】:

    • 我如何让 django 默认将我上传的文件设置为公开?
    • 我试过这个stackoverflow.com/a/4709391/977622 但没有运气......当我点击他们现在显示的链接时,但我的缩略图仍然给出 404
    猜你喜欢
    • 2016-12-22
    • 2013-09-05
    • 1970-01-01
    • 2015-09-24
    • 2013-12-29
    • 2013-03-29
    • 2018-01-22
    • 2015-02-03
    • 2022-07-02
    相关资源
    最近更新 更多