रेल 3 और पेपरक्लिप: "पहचान 'कमांड द्वारा पहचाना नहीं गया" - रूबी-ऑन-रेल, मैकोस, इमेजमैजिक, पेपरक्लिप

कुछ सिस्टम विवरण:

  • मैक ओएस एक्स शेर 10.7.2, रेल 3, पेपरक्लिप मणि।
  • ImageMagick 6.7.3-0, मैकपॉर्ट्स का उपयोग कर स्थापित बाइनरी /opt/local/bin
  • विकास पर्यावरण में WEBrick का उपयोग करना।

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

Routing Error
No route matches "[file_URL]"

इससे पहले, एक वैध पीएनजी फ़ाइल अपलोड करते समय, मुझे यह त्रुटि मेरे वेबबैक लॉग में दिखाई देती है:

[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: /var/folders/n4/62q22gb52rjd0h13cx_j8vv40000gq/T/stream20111020-24984-17560xt-0.png is not recognized by the "identify" command.>

करते हुए which identify आउटपुट:

/opt/local/bin/identify

कॉलिंग identify अपलोड की गई फ़ाइल के पथ के साथ फ़ाइल को पीएनजी फ़ाइल के रूप में सही ढंग से पहचानता है।

मैंने पुष्टि कर दी rails server विकास पर्यावरण शुरू करता है। मैंने निम्नलिखित में जोड़ा config/environments/development.rb:

Paperclip.options[:command_path] = "/opt/local/bin"

मेरे फोटो मॉडल में निम्न है:

class Photo < ActiveRecord::Base
has_attached_file :file, :default_style => :view, :styles => {
:view => { :geometry => "520x390>", :format => "jpg" },
:preview => { :geometry => "160x120>", :format => "jpg" } }
validates_attachment_content_type :file,
:content_type => [ "image/jpeg", "image/pjpeg", "image/png" ]
end

मेरे फोटो नियंत्रक:

class PhotosController < ApplicationController
# ...
def create
@photo = Photo.create params[:photo]
end
end

जैसे मैंने कहा, मैं यूआरएल पथ में मूल छवियों तक पहुंच सकता हूं system/files/:id/original, लेकिन जिन आकार वाले संस्करणों को मैं चाहता हूं वे उपलब्ध नहीं हैं और फाइल सिस्टम में नहीं पाए जाते हैं। वेबब्रिक के लॉग का सुझाव है कि पेपरक्लिप में छविमैजिक को आकार बदलने से पहले छवियों की पहचान भी नहीं हो सकती है।

कोई विचार? अग्रिम में धन्यवाद!

उत्तर:

जवाब के लिए 0 № 1

जैसा ऊपर बताया गया है, यह एक डुप्लिकेट प्रश्न हो सकता है, लेकिन यह समस्या ImageMagick 6.7.3-0 में हाल ही में एक बग के कारण हुई थी, जो 6.7.3-1 के ठीक बाद तय हो गई थी। मैकपोर्ट्स को नई रिलीज के साथ भी अपडेट किया गया है।

6.7.3-0 में, फ़ाइल पथ में फ्रेम संख्या बताते हुए (उदा। identify /path/to/file.png[0]) ImageMagick से segfault ("सेगमेंटेशन गलती 11") का कारण बन गया। पेपरक्लिप ने फ़्रेम नंबर निर्दिष्ट किया ताकि यह सुनिश्चित किया जा सके कि यह छवि फ़ाइल के पहले फ्रेम या पृष्ठ को संसाधित करता है।

ImageMagick की नई रिलीज ने इस समस्या को हल किया। मैकपोर्ट्स पर बग का उल्लेख किया गया था:

https://trac.macports.org/ticket/31643


संबंधित सवाल
सबसे लोकप्रिय