6

CarrierWave + MiniMagick kullanıyorum ve üretim için Heroku'ya konuşlandırdım.Heroku, CarrierWave, MiniMagick: RoR projemde rastgele tmp dosyası eksik

Üretimde bu sorun bazen görüntü işleme için eksik olan tmp dosyasıdır. Bu hatayı alıyorum:

Errno::ENOENT: No such file or directory - /tmp/mini_magick20130319-2-3wq6l6.jpg

ben çalışır diğer XUploader sınıfları var ama bu belirli bir iki resim süreçleri var. Başlangıçta bunun için iki ayrı süreç vardı:

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 

ama ben tmp dosyası yok diyerek :cropper hatayı sahip olduğunu söyledi.

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 

ama ne yazık ki, hala aynı sorun yaşanıyor: Umarım bu sadece bir kez çalışacak, bu kod değiştirmeye çalışmıştır.

Sorunun nerede olduğu hakkında bir fikri olan var mı? Heroku veya CarrierWave veya ImageMagick ile olup olmadığını bilmiyorum?

Düzenleme

Ben de Uploader sınıfının bu document gelince

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

bu kodu var.

cevap

0

Heroku zaman zaman tmp'yi boşaltır, genellikle işlenen sürümü saklamak için s3 veya başka bir bulut depolama alanı kullanırız. Onlar Bunu daha önce denedim Heroku yılında carrierwave kullanımıyla ilgili gidiş yolu ayrıntılı var https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Make-Carrierwave-work-on-Heroku

https://github.com/jnicklas/carrierwave ve Sen sevk edebilir ve

+0

üzgün Ah evet çalışır. Bunu “Yükleyici” sınıfımda yaşıyorum: def cache_dir; "# {Rails.root}/tmp/yükleme"; Sonu ' – index