Compartir vía


Descarga de un blob con JavaScript o TypeScript

En este artículo se muestra cómo descargar un blob con la biblioteca cliente de Azure Storage para JavaScript. Puede descargar datos de blob en varios destinos, incluyendo una ruta de acceso de archivo local, una secuencia o una cadena de texto.

Requisitos previos

  • Los ejemplos de este artículo asumen que ya tiene un proyecto configurado para trabajar con la librería cliente Azure Blob Storage para JavaScript. Para obtener más información sobre la configuración del proyecto, incluida la instalación de paquetes, la importación de módulos y la creación de un objeto cliente autorizado para trabajar con recursos de datos, consulte Introducción a Azure Blob Storage y JavaScript.
  • El mecanismo de autorización debe tener permisos para realizar una operación de descarga. Para obtener más información, consulte la guía de autorización para la siguiente operación de la API de REST:

Descarga de un blob

Puede usar cualquiera de los métodos siguientes para descargar un blob:

Descarga en una ruta de acceso de archivo

En el siguiente ejemplo se descarga un blob mediante una ruta de archivo con el método BlobClient.downloadToFile. Este método solo está disponible en el entorno de ejecución de Node.js:

async function downloadBlobToFile(containerClient, blobName, localFilePath) {

    const blobClient = containerClient.getBlobClient(blobName);
    
    await blobClient.downloadToFile(localFilePath);
}

Descarga como una secuencia

En el ejemplo siguiente se descarga un blob mediante la creación de un objeto de secuencia grabable Node.js y, a continuación, se canaliza a esa secuencia con el método BlobClient.download.

async function downloadBlobAsStream(containerClient, blobName, writableStream) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    downloadResponse.readableStreamBody.pipe(writableStream);
}

Descarga en una cadena

En el ejemplo siguiente de Node.js se descarga un blob en una cadena con el método BlobClient.download. En Node.js, los datos de blob se devuelven en un readableStreamBody.

async function downloadBlobToString(containerClient, blobName) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    const downloaded = await streamToBuffer(downloadResponse.readableStreamBody);
    console.log('Downloaded blob content:', downloaded.toString());
}

function streamToBuffer(readableStream) {
    return new Promise((resolve, reject) => {
        const chunks = [];
        readableStream.on('data', (data) => {
            chunks.push(data instanceof Buffer ? data : Buffer.from(data));
        });
        readableStream.on('end', () => {
            resolve(Buffer.concat(chunks));
        });
        readableStream.on('error', reject);
    });
}

Si está trabajando con JavaScript en el explorador, los datos de blob se devuelven en un blobBody de promesa. Para obtener más información, consulte el ejemplo de uso de exploradores en BlobClient.download.

Recursos

Para más información sobre cómo descargar blobs con la biblioteca cliente de Azure Blob Storage para JavaScript, consulte los recursos siguientes.

Ejemplos de código

Visualización de ejemplos de código de este artículo (GitHub):

Operaciones de API REST

El SDK de Azure para JavaScript contiene bibliotecas que se crean a partir de la API REST de Azure, lo que le permite interactuar con las operaciones de API REST a través de paradigmas conocidos de JavaScript. Los métodos de la biblioteca cliente para descargar blobs usan la siguiente operación de API de REST:

Recursos de la biblioteca cliente

  • Este artículo forma parte de la guía para desarrolladores de Blob Storage para JavaScript/Typescript. Para obtener más información, consulte la lista completa de artículos de la guía para desarrolladores en Compilación de la aplicación JavaScript/Typescript.