【问题标题】:Resize image using mini_magick, but no file in /tmp directory使用 mini_magick 调整图像大小,但 /tmp 目录中没有文件
【发布时间】:2012-04-07 13:28:22
【问题描述】:

我在 Rails 应用程序中使用 carrier_wave 和 mini_magick gem 以及 ImageMagick。所有版本都是最新的。

它在开发模式下运行良好。但是,我刚刚部署了该应用程序,它在生产模式下无法运行。

当我请求 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 之前的垃圾收集器可以处理它们,但是那些 案例似乎处理大图像和/或云存储。

我的图像文件只有 6K,而且一切都是本地的,所以我觉得很难 相信垃圾收集器正在突袭并删除 /tmp 文件,然后才能调整它的大小。 (但话又说回来,我没有 对这些事情发生的时间的想法,所以我可能是错的。)

谁能帮我解决这个问题?

谢谢, 拉里

【问题讨论】:

  • 生产环境中是否存在tmp 目录?
  • 您找到解决方案了吗?安装 minimagick 并不能解决我的问题。

标签: ruby-on-rails carrierwave minimagick


【解决方案1】:

缺少 ImageMagick

检查(在 Fedora Core/CentOS/RHEL 5 上):rpm -qa | grep ImageMagick

安装(在 Fedora Core/CentOS/RHEL 5 上):yum install ImageMagick

【讨论】:

  • 嗨,前进:我确实解决了这个问题。只是我太笨了。发生的事情是我最初使用的是 ImageMagick,但后来改用了 GraphicsMagick。我在本地安装了 GraphicsMagick,一切正常。在服务器上我安装了 ImageMagick,因此没有任何效果。一旦我在服务器上安装了 GraphicsMagick,事情就又开始工作了。糟糕!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多