2016-06-23 2 views
0

Любая идея использования Carrierwave для загрузки изображений с Heroku.Carrierwave + Heroku

Я добавил это в файл загрузчика:

def cache_dir 
    "#{Rails.root}/tmp/uploads" 
end 

но изображения по-прежнему не экономят! После загрузки изображения оно сохраняется, и как только вы обновляете страницу, изображение разбивается.

Любая помощь будет оценена! Спасибо

ответ

2

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

https://devcenter.heroku.com/articles/s3

Heroku позволяет хранить файлы внутри TMP, но только для того, чтобы отправить в службу 3 партии. Внутри carrierwave класса загрузчика можно установить, например

хранения: туман

вместо используемого по умолчанию: файл и настройки загрузки в AWS S3. Есть и другие варианты.

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

https://github.com/dwilkie/carrierwave_direct

Надеется, что это помогает

1

Файловой системе на Heroku не сохраняются. Только файлы, загруженные с помощью механизмов развертывания (git push), «сохраняются». Другие, подобные тем, которые находятся в папке "#{Rails.root}/tmp/uploads", будут удалены. Вот почему они исчезают.


Я ответил на similar question here. Вот цитата:

Ваш динамометр на Heroku имеет файловую систему «только для чтения». В некотором смысле, ваши файлы не будут сохраняться между вашими перезапусками dyno, и нет никакой гарантии, что они будут сохраняться между любыми двумя запросами. Вот excerpt from the docs:

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

Вы можете использовать папку #{Rails.root}/tmp в качестве временной папки, но вам необходимо загрузить свои файлы на внешнюю память (S3, некоторые CDN и т. Д.). У Heroku есть несколько дополнений, которые упрощают управление.

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