Скрепка на Героку?

Мне было любопытно, сможет ли кто-нибудь спрятать работу с Heroku без использования S3. Я предполагаю, что Heroku - это система только для чтения, но должен быть способ сохранить изображения там.

Ответ 1

Вы не можете писать в файловую систему Heroku, так что нет, нет способа сохранить изображения так, как вы хотите. Ваши параметры используют такую ​​услугу, как S3, или сохраняют их в базе данных. Я рекомендую использовать S3, потому что базы данных не оптимизированы для хранения файлов. Стоит прочитать документацию Heroku по загрузке файлов.

Ответ 2

Вы можете сохранять изображения в каталогах log и tmp.

Однако это ужасная, ужасная идея.

  • Если вы git push heroku, ваше приложение будет развернуто на новый дино. У нового динода не будет изображений, и изображения будут навсегда утеряны.

  • Если у вас есть два динамика и один динамик сохраняет изображение, изображение не будет доступно для следующего дино.

Таким образом, нет эффективного способа сохранить изображения в файловой системе.

Если вы хотите, вы можете написать свой собственный адаптер для Paperclip, который будет хранить изображения в базе данных.

Но на самом деле, вы должны хранить изображения в S3, когда используете Paperclip на Heroku, потому что это простой способ по умолчанию сделать это.

Ответ 3

В стороне, это также та же самая причина, почему SASS требует плагин на Heroku, ограниченный доступ к диску. Я использую Paperclip в нескольких приложениях на Heroku, как говорили другие, S3 hands down - это путь.

Ответ 4

Это для тех, кто, как я, не владеет кредитной картой и все еще хочет, чтобы она работала, поскольку вам необходимо предоставить учетные данные кредитной карты для использования S3. Cloudinary Gem здесь позволяет моделям Rails, управляемым через Paperclip, хранить изображения и файлы в экземпляре Cloudinary. Мне только нужно было добавить файл yaml в мой каталог конфигурации и указать путь к хранилищу в моей модели следующим образом.

has_attached_file :image,
  :storage => :cloudinary,
  :path => ':id/:style/:filename'

Обратитесь по ссылке выше для получения более подробной информации.

Ответ 5

Может быть Amazon EBS можно использовать с Heroku - или это слишком низкий уровень?