Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Heroku、CarrierWave、MiniMagick:随机tmp文件丢失_Ruby On Rails_Heroku_Imagemagick_Image Manipulation_Carrierwave - Fatal编程技术网

Ruby on rails Heroku、CarrierWave、MiniMagick:随机tmp文件丢失

Ruby on rails Heroku、CarrierWave、MiniMagick:随机tmp文件丢失,ruby-on-rails,heroku,imagemagick,image-manipulation,carrierwave,Ruby On Rails,Heroku,Imagemagick,Image Manipulation,Carrierwave,在我的RoR项目中,我使用CarrierWave+Minimagik并部署到Heroku进行生产 我在生产中遇到了这样的问题,有时图像处理会丢失tmp文件。我得到这个错误: Errno::enoint:没有这样的文件或目录-/tmp/mini_magick20130319-2-3wq6l6.jpg 我还有其他XUploader类可以工作,但这个特殊的类有两个映像进程。最初,我对此有两个单独的过程: process :resizer def resizer resize_to_fi

在我的RoR项目中,我使用CarrierWave+Minimagik并部署到Heroku进行生产

我在生产中遇到了这样的问题,有时图像处理会丢失tmp文件。我得到这个错误:

Errno::enoint:没有这样的文件或目录-/tmp/mini_magick20130319-2-3wq6l6.jpg

我还有其他XUploader类可以工作,但这个特殊的类有两个映像进程。最初,我对此有两个单独的过程:

  process :resizer
  def resizer
    resize_to_fit(model.jrac_image_width, model.jrac_image_height)
  end

  process :cropper
  def cropper
    manipulate! do |img|
      img.crop("442x190+#{model.jrac_crop_x}+#{model.jrac_crop_y}")
      img
    end
  end
但它说我在
:crapper
上出错,说tmp文件不存在。我尝试将代码更改为此,希望它只在上面工作一次:

  process :resize_and_crop
  def resize_and_crop
    manipulate! do |img|
      img.resize("#{model.jrac_image_width}x#{model.jrac_image_height}") # resize_to_fit
      img.crop("442x190+#{model.jrac_crop_x}+#{model.jrac_crop_y}") # cropper
      img
    end
  end
但不幸的是,仍然遇到同样的错误

有人知道问题出在哪里吗?我不知道是和Heroku还是CarrierWave还是ImageMagick

编辑

我的
上传程序
类中也有此代码

  def cache_dir
    "#{Rails.root}/tmp/uploads"
  end

至于这一点。

heroku会不时清空tmp,通常我们使用s3或其他云存储来存储处理后的版本。你可以参考和

他们详细介绍了如何在heroku中使用carrierwave
我以前也试过,效果很好

哦,是的,对不起。我的
上传程序中确实有这个类:
defcache\u dir;“#{Rails.root}/tmp/uploads”;结束