2013-09-04 3 views
0

Итак, я пошел по этому вопросу How to set-up a Django project with django-storages and Amazon S3, but with different folders for static files and media files?, чтобы получить приложение django, загружающее медиафайлы в мой ковш Amazon S3. Кстати, я использую django-oscar. Все, казалось, прекрасно работало сразу после загрузки изображения, но когда я перезагружаю страницу, изображения исчезают, и я получаю ошибку 404. Мои статические файлы работают нормально .. я не нашел проблем.django heroku media files 404 error with amazon s3

UPDATE:

Я изменил мою политику ковшеобразные общественности и я до сих пор не могу получить изображения для загрузки на моих эскизов или так:

{ 
    "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> 

UPDATE: Я спросил ребята на Heroku, и это был ответ, который они мне дали:

Привет, Посмотрев вокруг, он выглядит как 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/in front of the/cache/b5/f5 и т. Д. Тогда я смог просмотреть изображение, так как за этот снимок экрана. Возможно, вам понадобится восстановить новый URL-адрес, поскольку этот , вероятно, истек к моменту вашего получения. Похоже, что Django не генерирует правильные URL-адреса для этих загруженных активов. Здесь находится страница , которую я использовал для создания нового URL-адреса. У вас есть о любых настройках, которые могут повлиять на это? Это немного за пределами нашей возможности, и я не смог найти ни один параметр django-oscar , который устанавливает каталог '/ cache /'. Cheers, Rhys

Я этот вопрос django-oscar? если да, то кто-нибудь знает, как я могу это исправить?

enter image description here

ответ

0

Оказывается, что файлы являются частными и подпись генерируется для доступа к ним. По умолчанию файлы, загруженные в s3, устанавливаются в приватные. Вам придется явно публиковать свои файлы.

S3 - это не самая лучшая опция для работы с файлами напрямую, лучше всего использовать облачный интерфейс с ведром s3 в качестве источника.

+0

Как сделать django, чтобы мои загружаемые файлы были опубликованы по умолчанию? – psychok7

+0

Я попробовал это http://stackoverflow.com/a/4709391/977622, ​​но не повезло .. когда я нажимаю ссылки, которые они сейчас показывают, но мои миниатюры по-прежнему дают 404 – psychok7

+0

. Мой вопрос - это обновления, любые идеи? – psychok7

Смежные вопросы