Медиа файлы django heroku 404 ошибка с амазонкой s3
Итак, я следовал за этим вопросом. Как настроить проект Django с django-хранилищами и Amazon S3, но с разными папками для статических файлов и медиа-файлов? чтобы мое приложение django загружало мультимедийные файлы в мое хранилище amazon 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>
ОБНОВЛЕНИЕ: я спросил парней на героку, и это был ответ, который они дали мне:
Привет, Посмотрев вокруг, похоже, что URL, который генерирует Django, неверен. Я сгенерировал новый URL для одного из ваших изображений вручную, чтобы проверить его. Новое изображение было расположено здесь: http://s3.amazonaws.com/comprasonline-brazil/media/cache/bc/f5/bcf55748e916eb1979eab9e2713fa97f.jpg?AWSAccessKeyId=AKIAJVPBLRLYHX6EQKUA&Expires=1379587008&Signature=QiU8OvknWHoK7R9YsM%2FG8V%2F4v8s%3D немного отличается, и он имеет / media / перед /cache/b5/f5 и т. д. Затем я смог просмотреть изображение, как показано на этом скриншоте. Возможно, вам потребуется создать новый URL-адрес, поскольку срок его действия истечет к тому времени, когда вы его получите. Похоже, Django не генерирует правильные URL для этих загруженных ресурсов. Страница, которую я использовал для создания нового URL-адреса, находится здесь. Вам известны какие-либо настройки, которые могут повлиять на это? Это немного выходит за рамки наших возможностей, и я не смог найти ни одного параметра django-oscar, который бы устанавливал каталог '/cache/'. Ура, Рис
Я это вопрос Джанго-Оскар? если да, кто-нибудь знает, как я могу это исправить?
1 ответ
Похоже, что ваши файлы являются личными и генерируется подпись для доступа к ним. По умолчанию файлы, загруженные на s3, устанавливаются как приватные. Вам придется явно установить ваши файлы для общего доступа.
S3 - не лучший вариант для непосредственного обслуживания файлов. Лучше всего использовать cloudfront с корзиной s3 в качестве источника.