6

In meinem RoR-Projekt verwende ich CarrierWave + MiniMagick und bin zur Produktion bei Heroku eingesetzt.Heroku, CarrierWave, MiniMagick: Zufällige TMP-Datei fehlt

Ich habe dieses Problem in der Produktion, dass manchmal die tmp-Datei für die Bildverarbeitung fehlt. Ich bekomme diese Fehlermeldung:

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

ich andere XUploader Klassen, das funktioniert aber diese eine hat zwei Bildprozesse. Anfangs hatte ich zwei getrennte Verfahren dafür:

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 

aber es sagte, dass ich auf :cropper Fehler mit der tmp-Datei zu sagen gibt es nicht. Ich habe versucht, den Code, dies zu ändern, wird es hoffentlich nur einmal daran arbeiten:

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 

aber leider immer noch die gleichen Fehler zu erfahren.

Hat jemand eine Idee, wo das Problem liegt? Ich weiß nicht, ob es mit Heroku oder CarrierWave oder ImageMagick ist?

bearbeiten

Ich habe auch diesen Code auf meiner Uploader Klasse

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

wie für diese document.

Antwort

0

heroku wird die tmp von Zeit zu Zeit leeren, normalerweise verwenden wir s3 oder andere Cloud-Speicher, um die verarbeitete Version zu speichern. Sie können sich auf https://github.com/jnicklas/carrierwave und https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Make-Carrierwave-work-on-Heroku

Sie Durchlauf detailliert haben über die Verwendung carrierwave in Heroku habe ich versucht, dass vor und es funktioniert

+0

Oh ja sorry. Ich habe dies in meiner 'Uploader' Klasse:' def cache_dir; "# {Rails.root}/tmp/uploads"; Ende – index

Verwandte Themen