2009-08-11 9 views
5

Por lo tanto, estoy usando Paperclip y AWS-S3, lo cual es increíble. Y funciona genial Solo un problema: necesito cargar archivos realmente grandes. Como en más de 50 megabytes. Y entonces, nginx muere. ¿Entonces aparentemente Paperclip almacena cosas en el disco antes de ir a S3?Paperclip, grandes cargas de archivos y AWS

Encontré este really cool article, pero también parece que va primero al disco y luego hago todo lo demás en el fondo.

Idealmente, podría cargar el archivo en segundo plano ... Tengo una pequeña cantidad de experiencia haciendo esto con PHP, pero nada con Rails hasta el momento. ¿Podría alguien señalarme una dirección general, incluso?

Respuesta

5

Quizás tenga que aumentar el tiempo de espera en las configuraciones de ngix?

1

Usted puede estar interesado en mi post aquí:

http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip

Es sobre la posibilidad de subir varios archivos (con barras de progreso, al mismo tiempo) directamente a S3 sin golpear el servidor.

+0

¡Gracias por el enlace! El único problema que puedo ver con esto es que FancyUpload está en Flash, y flash tiene que cargar todo el archivo en la memoria antes de comenzar la carga. Entonces, si quisiera subir un archivo de 300MB, tengo que tener tanta RAM ... los cargadores de flash que probé hicieron que mi Firefox fallara, y tengo 4GB en mi máquina. Sin embargo, el artículo sigue siendo interesante, y me aseguraré de referirme a él más tarde ... –

+0

¡Oh, eso es una desventaja! No sabía sobre eso. –

+2

El comentario sobre Flash al cargar todo el archivo en la memoria antes de cargarlo ya no es cierto. Lo han cambiado a donde solo almacena lo que necesita ahora – iwasrobbed

5

Puede omitir el servidor por completo y cargarlo directamente en S3, lo que evitará el tiempo de espera. Lo mismo pasa en Heroku. Si está utilizando los carriles 3, por favor echa un vistazo a mis proyectos de la muestra:

Proyecto de ejemplo usando Rails 3, Flash y FancyUploader basada en MooTools para subir directamente a S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader

Proyecto de ejemplo usando Rails 3, Flash/Silverlight/GoogleGears/BrowserPlus y Plupload basado en jQuery para subir directamente a S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload

Por cierto, que puede hacer el procesamiento posterior con el Paperclip usando algo como esta entrada del blog (que Nico escribió) describe:

http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip

0

Estaba teniendo un problema similar pero con el uso de clip, pasajero y apache.
Al igual que nginx, apache tiene una directiva Timeout en apache que he aumentado para solucionar mi problema.

También hay algo interesante que hace el pasajero cuando carga archivos de gran tamaño.
Cualquier cosa superior a 8k se escribe en/tmp/pasajero. y si apache no tiene permisos para escribir allí, también obtendrá 500 errores.

Aquí está el artículo.
http://tinyw.in/fwVB

Cuestiones relacionadas