requestfilesystem - new file javascript
Subidas de mĂșltiples partes de HTML5 y Amazon S3 (1)
Sí, pero necesitará algún tipo de back-end de servidor para manejar las claves de la API de Amazon de una manera más segura si va a hacer que forme parte de un sitio web público.
Puede encontrar lo que parece una implementación de ejemplo completa de estos proyectos:
- s3-multipart-upload-browser que utiliza un back-end de PHP
- s3_multipart que usa Ruby.
Tenga en cuenta que no he usado, probado ni revisado estos proyectos.
Una descripción aproximada de la secuencia es la siguiente:
- Usuario
- carga la página web
- selecciona el archivo para cargar
- botón de carga de hits
- Página web
- envía información sobre el archivo al servidor
- Servidor
- crea carga de varias partes con la API de Amazon
- envía "clave" (nombre de archivo) y "subir ID" a la página web
- Página web
- calcula el tamaño de las piezas
- solicita al servidor que firme la "clave" de paso de pieza, "subir el id.", información de la pieza
- Servidor
- firma una solicitud de parte, envía "url de carga parcial", "fecha" y "encabezado de autenticación"
- Página web
- envía datos de la pieza directamente a Amazon S3 a través de la "URL de carga parcial" usando "fecha" y "encabezado de autenticación"
- realiza un seguimiento de los identificadores de piezas
- Servidor y página web
- repite 5 y 6 para cada parte adicional, resumiendo si es necesario
- Página web
- realiza una solicitud de "carga completa" al servidor (pasando toda la información de la pieza)
- Servidor
- realiza una solicitud a la API de Amazon para completar la creación del archivo
- Página web
- informar al usuario de error o éxito
Notas:
- Si se cancela la carga, esto también debe ser manejado desde el lado del servidor, de lo contrario las partes / cargas iniciadas quedarán ocupando espacio en el Bucket S3.
- Puede llevar unos minutos completar la solicitud de "carga completa" en Amazon.
¿Es posible usar la API de archivo HTML 5 (por ejemplo, esta biblioteca: https://github.com/23/resumable.js ) junto con la función de carga de varias partes de S3?
http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html