javascript jquery asp.net-mvc azure azure-storage

Cargue Largefile en Azure Blob usando Javascript



jquery asp.net-mvc (2)

Actualizando mi respuesta, ahora que CORS es compatible con Windows Azure Storage y el OP no ha aceptado ninguna respuesta :).

Sí, es posible cargar archivos grandes directamente desde su navegador a Windows Azure Storage. Puede encontrar estos pasos útiles:

  1. Primero cree una Shared Access Signature URL (SAS) con al menos permiso de Write en el contenedor de blob en el que desea cargar los archivos. Debido a que está cargando archivos de gran tamaño, le recomendaría que el tiempo de caducidad de SAS sea suficiente.

  2. Luego active CORS en su cuenta de almacenamiento. Si desea hacerlo de forma programática, puede encontrar esta publicación útil: http://gauravmantri.com/2013/12/01/windows-azure-storage-and-cors-lets-have-some-fun/ . Si desea utilizar una herramienta, mi empresa ha lanzado una herramienta Free para hacer eso. Puede leer más sobre esta herramienta y descargarla desde aquí: http://blog.cynapta.com/2013/12/cynapta-azure-cors-helper-free-tool-to-manage-cors-rules-for- windows- azur-blob-storage / .

  3. Hace algún tiempo, escribí una publicación en el blog sobre la carga de archivos muy grandes en almacenamiento de blob, que puedes leer aquí: http://gauravmantri.com/2013/02/16/uploading-large-files-in-windows-azure-blob- storage-using-shared-access-signature-html-and-javascript / . Una vez que CORS esté habilitado en su cuenta de almacenamiento, el código mencionado en el blog debería funcionar perfectamente.

De hecho, hay una manera, aunque hay algunas condiciones previas / advertencias.
  1. Debido a que CORS aún no es compatible con Blob Storage, su archivo HTML y JS debe estar presente en la misma cuenta de almacenamiento blob. Deben estar en un contenedor público.
  2. Ya que está cargando archivos de gran tamaño, necesitarían dividirse en fragmentos de menos de 4 MB de tamaño. HTML 5 tiene una API de archivo que puede dividir el archivo en fragmentos, pero no todos los navegadores admiten esta función.
Hace algún tiempo, escribí una publicación en el blog sobre la carga de archivos de gran tamaño con JavaScript puro y Firma de acceso compartido. Puede leer esa publicación aquí: http://gauravmantri.com/2013/02/16/uploading-large-files-in-windows-azure-blob-storage-using-shared-access-signature-html-and-javascript .

He visto algunos ejemplos en los que un archivo se transfiere al servidor y luego se carga en Azure Blob Storage.
Pero tengo archivos con tamaño en algunos GB.
¿Existe alguna manera de cargar un archivo directamente a Azure Blob Storage utilizando scripts del lado del cliente en lugar de hacerlo desde el servidor para ahorrar tiempo?


Azure lanzó la biblioteca del cliente de JavaScript de almacenamiento para navegadores. https://azure.microsoft.com/en-us/blog/new-azure-storage-javascript-client-library-for-browsers-preview/

La guía y las muestras están aquí: https://dmrelease.blob.core.windows.net/azurestoragejssample/samples/sample-blob.html

También una demo simple aquí para subir un blob a un contenedor usando token de SAS. https://authinazuread.azurewebsites.net/storage.html

Es todo javascript del lado del cliente, por lo que los archivos no se transfieren al servidor. Es compatible con la carga fragmentada y funciona bien con archivos de gran tamaño.