裁剪的图像魔术图像"No such file or directory"错误



我在我的Rails App上的delayjobs-run背景过程中具有接收base64 image blobs,调整和播种的功能,然后保存它们:

image64 = Base64.decode64(screenshot)
image = MiniMagick::Image.read(image64)
image.resize "#{image.width * 0.5}x#{image.height * 0.5}"
image.crop("#{image.width}x250") if ("#{image.height}".to_i > 250)
Base64.encode64(image.to_blob)

但是,添加了.crop调用,但是,停止了此过程,从而使我的Production Centos Linux服务器从.to_blob调用中导致此错误:

Errno::ENOENT: No such file or directory @ rb_sysopen - /tmp/mini_magick20170228-1709-t2rcyo
  /path/app/vendor/bundle/ruby/2.4.0/gems/mini_magick-4.6.1/lib/mini_magick/image.rb:175:in `binread'
  /path/app/vendor/bundle/ruby/2.4.0/gems/mini_magick-4.6.1/lib/mini_magick/image.rb:175:in `to_blob'

无需裁剪,功能起作用。在前景中运行它(即在rails console中)不会引起问题。

更新ImageMagick,确保/usr/bin处于路径状态,模拟链接标识不起作用(因此)。

任何帮助都将不胜感激。

per @mmichael,这个问题/答案转移了问题。具体来说,更改

image.crop("#{image.width}x250")

to

image.crop("#{image.width}x250+0+0")

允许.to_blob无问题。

如果有人可以解释为什么仅在后台运行时会发生这种情况,我将很乐意接受您的答案。

相关内容

最新更新