Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

129
Views
Cómo esperar a que se complete la operación en Azure Blob Service

Cómo usar async/await en blob service. Estoy intentando descargar y comprimir la carpeta y, por lo tanto, quiero esperar hasta que se complete la descarga, para poder continuar y comprimir ese archivo. Pero debido al comportamiento asincrónico, en algún momento la función se comporta mal.

Último código:

 const blobServiceClient = BlobServiceClient.fromConnectionString("connect string"); const containerClient = blobServiceClient.getContainerClient(containerName); for await (const blob of containerClient.listBlobsFlat({ prefix: path })) { if (fs.existsSync(fileUploadPath)) { var sourceFilePath = fileUploadPath + '/' + project.id + '/' + blob.name; if (!fs.existsSync(sourceFilePath)) { fs.mkdir(require('path').dirname(sourceFilePath), { recursive: true }, async(err) => { if (err) { console.log("Failed to mkdir:" + err); } console.log(blob.name) await containerClient.getBlobClient(blob.name).downloadToFile(sourceFilePath,0,undefined); }); } } else{ console.log('downloads folder does not configures!') }

aquí tengo un par de dudas,

  1. ¿Qué tan eficiente es downloadToFile? ¿Puede descargar blobs de gran tamaño?
  2. solo se descarga el blob inmediato que también tiene datos incompletos y no se descargan los blobs en el subdirectorio.
  3. Pensé, la transmisión de datos es una forma eficiente de descargar blobs. ¿Hay alguna API para transmitir datos a local, como teníamos una en la biblioteca anterior (getBlobToStream)?
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Con la última versión del SDK de Azure Storage Blob , puede convertir su código existente en algo así:

 const { BlobServiceClient, StorageSharedKeyCredential } = require("@azure/storage-blob"); const account = "<account>"; const accountKey = "<accountkey>"; const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey); const blobServiceClient = new BlobServiceClient( `https://${account}.blob.core.windows.net`, sharedKeyCredential ); const containerName = '<container name>'; const path = '<prefix>'; async function download() { var containerClient = blobServiceClient.getContainerClient(containerName); for await (const blob of containerClient.listBlobsFlat({ prefix: path })) { await containerClient.getBlobClient(blob.name) .downloadToFile(`./${blob.name}`); } } download() .then(() => console.log('Done')) .catch((ex) => console.log(ex.message));
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!