JavaScript を使用して BLOB をダウンロードする

この記事では、JavaScript 用の Azure Storage クライアント ライブラリを使用して BLOB をダウンロードする方法について説明します。 BLOB データは、ローカル ファイル パス、ストリーム、テキスト文字列など、さまざまな宛先にダウンロードできます。

前提条件

  • この記事の例では、JavaScript 用の Azure Blob Storage クライアント ライブラリを操作するためのセットアップ済みプロジェクトが既にあることを前提としています。 パッケージのインストール、モジュールのインポート、データ リソースを操作するための認可済みクライアント オブジェクトの作成など、プロジェクトのセットアップについては、「Azure Blob Storage と JavaScript の概要」を参照してください。
  • 認可メカニズムには、ダウンロード操作を実行するためのアクセス許可が必要です。 詳細については、次の REST API 操作の認可ガイダンスを参照してください。

BLOB をダウンロードする

次のいずれかのメソッドを使用して BLOB をダウンロードできます。

ファイル パスへのダウンロード

次の例では、BlobClient.downloadToFile メソッドでファイル パスを使用して BLOB をダウンロードします。 このメソッドは、Node.js ランタイムでのみ使用できます。

async function downloadBlobToFile(containerClient, blobName, fileNameWithPath) {

    const blobClient = containerClient.getBlobClient(blobName);
    
    await blobClient.downloadToFile(fileNameWithPath);
    console.log(`download of ${blobName} success`);
}

ストリームとしてのダウンロード

次の例では、Node.js の書き込み可能なストリーム オブジェクトを作成し、BlobClient.download メソッドを使用してそのストリームにパイプ処理することで、BLOB をダウンロードします。

async function downloadBlobAsStream(containerClient, blobName, writableStream) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    downloadResponse.readableStreamBody.pipe(writableStream);
    console.log(`download of ${blobName} succeeded`);
}

文字列へのダウンロード

次の Node.js の例では、BlobClient.download メソッドを使用して、BLOB を文字列にダウンロードします。 Node.js では、BLOB データは 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());
}

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

ブラウザーで JavaScript を使用している場合、BLOB データは promise blobBody で返されます。 詳細については、BlobClient.download のブラウザー用の使用例を参照してください。

リソース

JavaScript 用 Azure Blob Storage クライアント ライブラリを使用して BLOB をダウンロードする方法について詳しくは、次のリソースを参照してください。

REST API の操作

Azure SDK for JavaScript には Azure REST API に基づいて構築されたライブラリが含まれるため、使い慣れた JavaScript パラダイムを通じて REST API 操作を利用できます。 BLOB をダウンロードするためのクライアント ライブラリ メソッドは、次の REST API 操作を使用します。

コード サンプル

この記事のコード サンプルを表示する (GitHub):

クライアント ライブラリのリソース