Измените размер изображения с помощью mini_magick, но нет файла в каталоге / tmp

Я использую гемы carrier_wave и mini_magick вместе с ImageMagick в приложении Rails. Все версии настолько актуальны, насколько это возможно.

Прекрасно работает в режиме разработки. Однако я только что развернул приложение, и оно не работает в производственном режиме.

Проблема возникает, когда я запрашиваю mini_magick изменить размер изображения:

rake aborted!
No such file or directory - gm identify -ping /tmp/mini_magick20120407-19273-jjzz44.jpg
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:71:in `spawn'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:71:in `spawn'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:55:in `run!'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/subexec-0.2.1/lib/subexec.rb:41:in `run'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:405:in `run'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:399:in `run_command'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:198:in `valid?'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:163:in `create'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:73:in `read'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:134:in `block in open'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:133:in `open'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/mini_magick-3.4/lib/mini_magick.rb:133:in `open'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/carrierwave-0.6.0/lib/carrierwave/processing/mini_magick.rb:245:in `manipulate!'
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/carrierwave-0.6.0/lib/carrierwave/processing/mini_magick.rb:145:in `resize_to_fit'

Когда я комментирую запрос CarrierWave на «resize_to_fit» изображение, все работает нормально.

Я читал, где у mini_magick были некоторые проблемы с состоянием гонки, когда файлы в каталоге / tmp удалялись сборщиком мусора до того, как mini_magick мог их обработать, но эти случаи, похоже, имели дело с большими изображениями и / или облачным хранилищем.

Размер моего файла изображения составляет всего 6 КБ, и все является локальным, поэтому мне трудно поверить, что сборщик мусора наскакивает и удаляет файл / tmp, прежде чем его можно будет изменить. (Но опять же, я понятия не имею о сроках этих событий, поэтому могу ошибаться.)

Кто-нибудь может мне с этим помочь?

Спасибо, Ларри


person Larry    schedule 07.04.2012    source источник
comment
Каталог tmp существует в производственной среде?   -  person mikdiet    schedule 07.04.2012
comment
Вы нашли решение этого? Установка Minimagick для меня не решает.   -  person rohitmishra    schedule 11.12.2012


Ответы (1)


Отсутствует ImageMagick

Проверьте (в Fedora Core / CentOS / RHEL 5): rpm -qa | grep ImageMagick

Установить (в Fedora Core / CentOS / RHEL 5): yum install ImageMagick

person aboltart    schedule 10.04.2012
comment
Привет, вперед: я решил проблему. Просто я был глуп. Случилось так, что я изначально использовал ImageMagick, но позже перешел на GraphicsMagick. У меня был установлен GraphicsMagick локально, и все работало нормально. На сервере я установил ImageMagick, поэтому ничего не работало. Как только я установил GraphicsMagick на сервер, все снова заработало. Ой! - person Larry; 12.12.2012