Я использую гемы 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, прежде чем его можно будет изменить. (Но опять же, я понятия не имею о сроках этих событий, поэтому могу ошибаться.)
Кто-нибудь может мне с этим помочь?
Спасибо, Ларри
tmp
существует в производственной среде? - person mikdiet   schedule 07.04.2012