2012-02-10 18 views
5

Estoy usando carrierwave para subir imágenes a amazon s3. Esto funciona muy bien en el desarrollo, pero no cuando lo envío a mi servidor (prueba en la nube del patio de la ingeniería).Corrupción de imagen al cargar a s3, solo producción. (carrierwave, patio de máquinas)

El proceso funciona bien, no se producen errores y se devuelve un enlace. Sin embargo, la imagen real está dañada, de alguna manera.

Aquí hay uno, por ejemplo: https://s3.amazonaws.com/ZenBucket/uploads/goal/photo/30/guinness-toucan.jpg

Puede alguien decirme cómo está siendo dañado, o lo que podría hacerlo?

Editar: El primer intento de carga de imágenes después de la implementación siempre parece fallar 500, pero el error no se muestra en el registro. No estoy seguro de si eso es relevante.

Edit2: También parece estar ocurriendo con la gema libélula en lugar de carrierwave.

Gracias

+0

¿Han estado experimentando esto también otros? (Por lo tanto, de las votaciones ascendentes) –

+0

¿Puede proporcionar la imagen de origen original que está intentando cargar y todas las imágenes están dañadas o solo la primera después de una implementación? – Dan

+0

Aquí está el original: http://yfrog.com/ms0pubj - Todas las imágenes están dañadas, siempre. Extenderé la recompensa si puede resolver esto –

Respuesta

0

No parece haber habido un problema con la compresión gzip en jruby (posiblemente con https) eso ha sido resuelto Si alguien necesita números de versión de mi pila, puedo obligar.

0

Si sólo ocurre en la primera imagen después de un despliegue, sospecharía que su aplicación todavía está cargando (o al menos algunos trabajadores son), haciendo uso intensivo de la CPU y ralentizar el proceso de carga, lo que puede hacer que exceda el tiempo de espera y corrompa la imagen al mismo tiempo.

Supongo que Engine Yard volverá a cargar su aplicación solo en la primera solicitud, que podría ser el motivo. Debería intentar simplemente "curvar" su aplicación después de una implementación y esperar un par de minutos para ver si eso ayuda.

Las pequeñas instancias en EC2 tienen un solo núcleo y pueden volverse bastante lentas cuando se reinician muchos trabajadores.

+0

Lo que dices es cierto, toma tiempo cargar la primera solicitud, pero no causa el problema –

0

Ir a través de la configuración carrierwave/niebla para EngineYard, tal como se describe aquí: http://www.engineyard.com/blog/2011/a-gentle-introduction-to-carrierwave/ y aquí: http://docs.engineyard.com/use-carrierwave-and-optionally-fog-to-upload-and-store-files.html

Es el "niebla" conjunto público a "falso" o "verdadero"? Si es "falsa", marque este hilo, ya que tendrá que utilizar la propiedad "authenticated_url" en lugar de lo que está vuelto: http://groups.google.com/group/carrierwave/browse_thread/thread/2f727c77864ac923

+0

Desafortunadamente, el archivo está dañado incluso directamente desde el panel s3 –

Cuestiones relacionadas