Estoy usando el método uploadData () para cargar un archivo local en un recurso compartido de archivos de Azure. Tengo un problema con onProgress ya que obtengo una única actualización de progreso, es decir, la actualización final cuando finalmente se carga el archivo. ¿Puede alguna guía dónde me estoy equivocando?
await fileClient.uploadData(selectedFile, { rangeSize: 4 * 1024 * 1024, // 4 MB de paralelismo de tamaño de rango: 20, // 20 concurrencia en progreso: ev => console.log (ev) });
Azure Files ofrece recursos compartidos de archivos completamente administrados en la nube a los que se puede acceder a través del protocolo de bloque de mensajes del servidor (SMB) estándar de la industria.
Revisé algunos documentos y blogs y descubrí que el método es un método de carga en paralelo y solo envía una sola solicitud al servidor de Azure Storage. Entonces, si desea que onProgress se ejecute muchas veces, le sugiero que use el método uploadStream . Para obtener más información, consulte estos métodos de carga en paralelo .
Podemos lograr la carga paralela de una secuencia legible con ShareFileClient.uploadStream() en el tiempo de ejecución de Node.js como se muestra a continuación.
await fileClient.uploadStream(fs.createReadStream(localFilePath), fileSize, 4 * 1024 * 1024, 20, { abortSignal: AbortController.timeout(30 * 60 * 1000), // Abort uploading with timeout in 30mins onProgress: (ev) => console.log(ev) }); console.log("uploadStream success");Lea también este documento de la interfaz FileUploadStreamOptions para obtener más información.