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:
- BlobClient.download
- BlobClient.downloadToBuffer (solo disponible en el entorno de ejecución de Node.js)
- BlobClient.downloadToFile (solo disponible en el entorno de ejecución de Node.js)
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):
- Descarga de un archivo para JavaScript o TypeScript
- Descarga a una secuencia para JavaScript o TypeScript
- Descarga a una cadena para JavaScript o TypeScript
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:
- Get Blob (API REST)
Recursos de la biblioteca cliente
- Documentación de referencia de la biblioteca cliente
- Código fuente de la biblioteca del cliente
- Paquete (npm)
Contenido relacionado
- 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.