Pregunta

Estoy usando el complemento PaperClip en mi aplicación Rails de la siguiente manera:

  has_attached_file :photo, :styles => {:small => '64X64>', :medium => '250X250>'},
                                      :url  => "/assets/user_photos/:id/:style/:basename.:extension",
                                      :path => ":rails_root/public/assets/user_photos/:id/:style/:basename.:extension"
#  validates_attachment_presence :photo
  validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png','image/gif']
  validates_attachment_size :photo, :less_than => 1.megabytes

Funciona bien en el desarrollo (Mac OSX + Mongrel). Pero cuando lo pongo en producción (Linux Debian + Apache / Passenger) solo acepta .gif y obtengo el siguiente error para .png y .jpg:

 Photo /tmp/stream20091028-20066-1t1a0oz-0 is not recognized by the 'identify' command.
 Photo /tmp/stream20091028-20066-1t1a0oz-0 is not recognized by the 'identify' command.

¡Intenté agregar la siguiente línea como sugieren algunos tutoriales, pero no ayudó!

Paperclip.options[:command_path] = "/usr/local/bin"
¿Fue útil?

Solución

En su servidor de producción, intente ejecutar:

which identify

Esto debería darle su ruta al binario de identificación de ImageMagick; si no es así, no tiene instalado ImageMagick o no está en su ruta.

Si devuelve algo como '' / usr / bin / identifique '', entonces querrá configurar las opciones de Paperclip en su archivo de entorno production.rb para:

Paperclip.options[:command_path] = "/usr/bin"

Otros consejos

En caso de que alguien más se encuentre con este problema, tuve el mismo error en mi Mac OSX Snow Leopard al procesar archivos JPG (aunque los archivos GIF funcionaron bien). Estoy ejecutando Rails 3.0.5 y Paperclip 2.3.11.

[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: /var/folders/9D/9DvX1hqSFr04U3drvD9o0U+++TI/-Tmp-/stream20110420-50661-l9je0z.jpg is not recognized by the 'identify' command.

Solucioné el problema instalando desde el origen la biblioteca de codificación jpeg disponible en http: //www.ijg.org/files/jpegsrc.v8c.tar.gz .

cd /usr/local/src
tar xvfz jpeg-8c.tar.gz
cd jpeg-8c
export MACOSX_DEPLOYMENT_TARGET=10.6
./configure --enable-shared --prefix=$CONFIGURE_PREFIX
make
sudo make install

Luego reinstalé ImageMagick desde la fuente:

cd /usr/local/src
tar xvfz ImageMagick-6.6.9-5.tar.gz
cd ImageMagick-6.6.9-5
export CPPFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib
./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable-openmp
make
sudo make install

Después de eso pude subir archivos JPG con Paperclip.

[paperclip] convert '/var/folders/9D/9DvX1hqSFr04U3drvD9o0U+++TI/-Tmp-/stream20110420-86578-3ntsgn.jpg[0]' -resize "100x100>" '/var/folders/9D/9DvX1hqSFr04U3drvD9o0U+++TI/-Tmp-/stream20110420-86578-3ntsgn20110420-86578-iiszw5' 2>/dev/null
...
[paperclip] saving /Users/xxx/myrailsapp/public/system/images/5/original/IMG_0001.jpg

Tuve el mismo problema después de actualizar a Lion. La ejecución de 'identity image.jpg' arrojó el error dyld: Biblioteca no cargada .

Esta publicación ayudó a resolver el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top