2011-06-27 9 views
9

मैं एक बहु-भाग फ़ॉर्म के माध्यम से अपलोड की गई छवियों पर कुछ छवि आकार बदलने के लिए मिनीमैजिक का उपयोग कर रहा हूं। मुझे मूल रूप से अपलोड की गई फ़ाइल से कुछ अलग-अलग प्रकार की छवियां उत्पन्न करने की आवश्यकता है। यहाँ कोड है कि छवि प्रसंस्करण प्रदर्शन कर रहा है है:रेल ऐप पर रूबी में मिनीमैजिक का उपयोग करते समय अस्थायी फ़ाइलें कहां जाती हैं?

// Generates a thumbnail image 
mm = MiniMagick::Image.open(Rails.root.join('public', 'uploads', new_url)) 
mm.resize(thumbnail_dimensions.join("x")) 
mm.write(Rails.root.join('public', 'uploads', "t_"+new_url)) 

// Generates cropped version 
mm_copy = MiniMagick::Image.open(Rails.root.join('public', 'uploads', new_url)) 
mm_copy.crop('200x200') 
mm_copy.write(Rails.root.join('public', 'uploads', "c_"+new_url)) 

new_urlpublic फ़ोल्डर में छवि के लिए पथ है। थंबनेल दिनचर्या पूरी तरह से काम करता है। जब ऐप फसल वाले संस्करण को संसाधित करना शुरू कर देता है, वहीं चीजें तोड़ने लगती हैं और मैं अपने जीवन के लिए इसे समझ नहीं सकता। मैं जब इस कोड से निम्न त्रुटि प्राप्त:

No such file or directory - /tmp/mini_magick20110627-10055-2dimyl-0.jpg 

मैं रेल में कचरा कलेक्टर के साथ संभव दौड़ की स्थिति के बारे में कुछ सामान पढ़ा है, लेकिन मैं इस मुद्दे को हल करने में सक्षम नहीं था। मैंने इसे कंसोल से भी कोशिश की और मिनीमैजिक उदाहरण बना सकते हैं लेकिन No such file त्रुटि भी प्राप्त कर सकते हैं। इस बिंदु पर, मुझे नहीं पता कि कहां जाना है, इसलिए मुझे उम्मीद है कि यहां किसी के पास कुछ उपयोगी सुझाव हैं। आपकी सहायताके लिए धन्यवाद!

विवरण:

  • ओएस: Ubuntu (स्पष्ट लिंक्स)
  • रेल संस्करण: 3.0.7
  • रूबी संस्करण: 1.8.7
  • MiniMagick संस्करण: 3.3
+0

फसल कोड काम करता है, तो आप बाहर थंबनेल लाइनों के ऊपर टिप्पणी करता है पुनः आरंभ? – Joshua

+0

हमम ... मैंने कोशिश नहीं की है। मैं अब इस परियोजना पर वापस आ रहा हूं इसलिए मैं इसे देख लूंगा और परिणाम पोस्ट करूंगा। –

उत्तर

3

शायद यह रेस शर्त है जिसका उल्लेख यहां किया गया है:

https://ar-code.lighthouseapp.com/projects/35/tickets/6-race-condition-with-temp_file

यहाँ एक ठीक है:

http://rubyforge.org/tracker/index.php?func=detail&aid=9417&group_id=1358&atid=5365

वैकल्पिक रूप से, और शायद आसान, तो आप इस कोशिश कर सकते:

// Generates a thumbnail image 
mm = MiniMagick::Image.open(Rails.root.join('public', 'uploads', new_url)) 
mm_copy = mm.clone # clone the opened Image, instead of re-opening it 

mm.resize(thumbnail_dimensions.join("x")) 
mm.write(Rails.root.join('public', 'uploads', "t_"+new_url)) 

// Generates cropped version 
mm_copy.crop('200x200') 
mm_copy.write(Rails.root.join('public', 'uploads', "c_"+new_url)) 
7

क्या आप ImageMagick स्थापित? यदि नहीं, तो sudo apt-get install ImageMagick, कोशिश करते हैं और फिर अपने webrick सर्वर

+4

यह वास्तविक कमांड => sudo apt-get imagemagick इंस्टॉल करें –

संबंधित मुद्दे