Carrierwave文件上传和调整大小被中断

时间:2014-01-05 10:51:56

标签: ruby-on-rails-3.2 carrierwave minimagick

我已经运行这个过程来克服已知的ruby 1.9和ImageMagick问题。

Localhost运行良好,部署是挂起的地方。根据{{​​3}}

配置时达到的最远结果

上传者维护默认设置

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

创建2个版本

  version :base do
    process :resize_to_limit => [200, 200]
  end

  version :tiny do
    process :resize_to_limit => [50, 50]
  end

ImageMagick和MiniMagick肯定是加载并运行的,因为当我加载图像时,通过Rails.root / shared / uploads中的符号链接创建了一个tmp文件夹。在图像加载时,它会创建一个包含原始文件的文件夹,第二个图像的前缀为我正在创建的版本(基础)。

基本上它停在那里。我应该创建第三个版本,但没有尝试这样做。此外,第二个版本不会重新调整大小:文件处于其原始状态及其新名称。因此有些事情正在中断重新调整大小并返回错误:

  

没有这样的文件或目录 - 识别-quiet -ping   /tmp/mini_magick20140105-74944-bhyai4.png

堆栈跟踪如下:

subexec (0.2.3) lib/subexec.rb:71:in `spawn'
subexec (0.2.3) lib/subexec.rb:71:in `spawn'
subexec (0.2.3) lib/subexec.rb:55:in `run!'
subexec (0.2.3) lib/subexec.rb:41:in `run'
mini_magick (3.5.0) lib/mini_magick.rb:410:in `run'
mini_magick (3.5.0) lib/mini_magick.rb:404:in `run_command'
mini_magick (3.5.0) lib/mini_magick.rb:201:in `valid?'
mini_magick (3.5.0) lib/mini_magick.rb:166:in `create'
mini_magick (3.5.0) lib/mini_magick.rb:76:in `read'
mini_magick (3.5.0) lib/mini_magick.rb:137:in `block in open'
mini_magick (3.5.0) lib/mini_magick.rb:136:in `open'
mini_magick (3.5.0) lib/mini_magick.rb:136:in `open'
carrierwave (0.9.0) lib/carrierwave/processing/mini_magick.rb:260:in `manipulate!'

我不确定问题究竟在哪里,在Carrierwave,这个subexec例程的mini_magick之间。但似乎某个地方tmp文件的位置正在被删除。

我使用的是ruby-1.9.3-p125,carrierwave 0.9.0 MiniMagick 3.5.0。

1 个答案:

答案 0 :(得分:0)

问题在于两个问题,但在问题的答案中,localhost和生产机器之间有什么区别。
答案:Passenger v3,以及它在Apache启动时的行为方式。 (乘客4显然没有问题)

最好通过this proposed solution解决,并使用以下命令编辑开发和/或生产环境文件的结尾:

  ENV['PATH'] = "/usr/local/bin:#{ENV['PATH']}"