Мне было любопытно, сможет ли кто-нибудь спрятать работу с 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 - или это слишком низкий уровень?