Использование Paperclip + heroku + s3 ... локальные загрузки прерываются при запуске - PullRequest
1 голос
/ 24 июля 2011

Я создаю небольшой веб-сайт с довольно большим количеством фотографий> 100 для небольшой местной группы людей.Если я загружаю файлы в s3 с помощью скрепки на моем локальном компьютере, они работают нормально, но когда я помещаю их в heroku, эти картинки затем ломаются (иначе говоря, они указывают на неправильное местоположение).

Если я вытащу живую базу данных из heroku (в случае, когда я загружаю фотографии в приложение, которое находится в сети, затем извлекаю онлайн-базу данных).Эти изображения не загружаются в мое локальное приложение.

Есть идеи, как заставить это работать?

РЕДАКТИРОВАТЬ: Еще несколько разъяснений по проблеме: теперь я установил путь в модели следующим образом:

:path => "/public/system/:attachment/:style/:id.:extension"

И теперь он контролирует, как выглядит URL при обращении к S3.Однако мой локальный компьютер выводит это как источник изображения:

bucket/Users/msencenb/Development/appname/public/system/pictures/7/thumb/overlook.jpg?2011

, а источник приложения heroku выглядит следующим образом:

bucket/app/public/system/pictures/7/thumb/overlook.jpg?2011

Как вы можете видеть, это очень похоже, за исключением локальноговнедряет структуру каталогов в исходный путь.Как я могу найти исходный путь с помощью скрепки?

Ответы [ 3 ]

2 голосов
/ 25 июля 2011

Смотрите это сообщение в блоге:

http://codeglot.com/posts/68-upoading_pictures_to_apps_on_heroku

У меня есть несколько приложений, которые используют paperclip и s3. Вот как я это настроил:

  has_attached_file :picture, 
                     :styles => {:large => "275x450>"},
                     :storage => :s3, 
                     :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
                     :path => "appname/:attachment/:style/:id.:extension"

Убедитесь, что вы заменили appname на имя вашего приложения. например, субдомен, вы можете получить доступ к своему приложению на heroku.

0 голосов
/ 24 июля 2011

Попробуйте убрать косую черту, которая у вас есть в начале пути.

:path => "public/system/:attachment/:style/:id.:extension"

Не следует использовать путь к приложению (Users / msencenb / Development / appname на локальном компьютере и приложение на Heroku) таким образом. Что-то вызывает это, и если слэш не работает, попытайтесь выяснить, что еще могло бы вызвать это.

0 голосов
/ 24 июля 2011

Когда вы работаете на своем локальном компьютере, файлы загружаются на S3 с использованием идентификаторов из вашей локальной базы данных, а когда вы нажимаете на heroku, если вы не обновите удаленную базу данных с вашим локальным контентом, ссылки будутсломаны.

...