Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft EdgeMore info about Internet Explorer and Microsoft Edge
Table of contentsExit editor mode

Download a blob with JavaScript or TypeScript

Feedback

In this article

This article shows how to download a blob using theAzure Storage client library for JavaScript. You can download blob data to various destinations, including a local file path, stream, or text string.

Prerequisites

  • The examples in this article assume you already have a project set up to work with the Azure Blob Storage client library for JavaScript. To learn about setting up your project, including package installation, importing modules, and creating an authorized client object to work with data resources, seeGet started with Azure Blob Storage and JavaScript.
  • Theauthorization mechanism must have permissions to perform a download operation. To learn more, see the authorization guidance for the following REST API operation:

Download a blob

You can use any of the following methods to download a blob:

Download to a file path

The following example downloads a blob by using a file path with theBlobClient.downloadToFile method. This method is only available in the Node.js runtime:

async function downloadBlobToFile(containerClient, blobName, localFilePath) {    const blobClient = containerClient.getBlobClient(blobName);        await blobClient.downloadToFile(localFilePath);}

Download as a stream

The following example downloads a blob by creating a Node.js writable stream object and then piping to that stream with theBlobClient.download method.

async function downloadBlobAsStream(containerClient, blobName, writableStream) {    const blobClient = containerClient.getBlobClient(blobName);    const downloadResponse = await blobClient.download();    downloadResponse.readableStreamBody.pipe(writableStream);}

Download to a string

The following Node.js example downloads a blob to a string withBlobClient.download method. In Node.js, blob data returns in areadableStreamBody.

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);    });}

If you're working with JavaScript in the browser, blob data returns in a promiseblobBody. To learn more, see the example usage for browsers atBlobClient.download.

Resources

To learn more about how to download blobs using the Azure Blob Storage client library for JavaScript, see the following resources.

Code samples

View code samples from this article (GitHub):

REST API operations

The Azure SDK for JavaScript contains libraries that build on top of the Azure REST API, allowing you to interact with REST API operations through familiar JavaScript paradigms. The client library methods for downloading blobs use the following REST API operation:

Client library resources

Related content

  • This article is part of the Blob Storage developer guide for JavaScript/TypeScript. To learn more, see the full list of developer guide articles atBuild your JavaScript/TypeScript app.

Feedback

Was this page helpful?

YesNoNo

Need help with this topic?

Want to try using Ask Learn to clarify or guide you through this topic?

Suggest a fix?

  • Last updated on

In this article

Was this page helpful?

YesNo
NoNeed help with this topic?

Want to try using Ask Learn to clarify or guide you through this topic?

Suggest a fix?