2009-01-26 16 views
15

En relación con esta pregunta, Upload files directly to Amazon S3 from ASP.NET application, ¿hay alguna manera de hacer esto y tener una barra de progreso?Subir archivo directamente a S3 con barra de progreso

---- ---- EDITAR

Dos días más tarde y aún ninguna suerte con una forma directa. Encontró una cosa que parece prometedora pero no gratuita: http://www.flajaxian.com/

Usa flash para cargar directamente en S3 con una barra de progreso.

+1

Flajaxian parece ser libre ahora – BigJoe714

+0

@ BigJoe714 gracias por la información! –

+0

Es fácil realizar la barra de progreso si está cargando directamente de, digamos, JS usando el evento httpUploadProgress. Pero ¿cómo podría hacerlo? la barra de progreso JS-> PHP proxy-> S3? – trainoasis

Respuesta

4

Estoy buscando una solución también. Tal vez este sea de alguna ayuda,

From AWS Dev Commnity Pero en muchos idiomas (PHP, Java), por archivos de gran tamaño, usted tiene que utilizar corrientes a través del cual el entorno de idioma tomará trozos de su archivo grande uno después de la otra (con el fin de llenar memoria central con una enorme cantidad de datos para el http POST de S3 necesita para la carga.

lo bueno de corriente es que tienen una devolución de llamada llamado cuando el siguiente fragmento se lee para PONER (en el sentido https) a S3. Puede usar esta devolución de llamada para calcular y mostrar el progreso en la interfaz de usuario del cliente.

Consulte el documento de libcurl para ver en detalles de cómo funciona esto.


Actualización: Parece que hay dos opciones sencillas.

  1. Flash, via the FileReference class
  2. With a Java applet

Yo personalmente odio el uso de extensiones de 3 ª parte (Flash, Java) para realizar una función de aplicación, pero no he encontrado otra manera.

+0

¿Ha considerado usar la API de archivos W3C disponible en algunos navegadores?¿Y cuáles fueron tus hallazgos si es así? – Quickredfox

+0

No lo he probado – Blaine

-2

Otro enfoque es usar algo como Uber Uploader (http://uber-uploader.sourceforge.net/) que es una solución híbrida perl/php con una barra de progreso. Simplemente cargue los archivos en su servidor y luego pídale a su servidor que los transfiera en segundo plano al destino final. Es un paso adicional, pero le da tiempo para hacer cualquier procesamiento/codificación/etc. que pueda necesitar hacer antes de enviarlo a S3.

Cuestiones relacionadas