Ruby on rails Heroku、CarrierWave、MiniMagick:随机tmp文件丢失
在我的RoR项目中,我使用CarrierWave+Minimagik并部署到Heroku进行生产 我在生产中遇到了这样的问题,有时图像处理会丢失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
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”;结束