JavaScript または TypeScript を使用して 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, localFilePath) {

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

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

次の例では、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);
}

文字列へのダウンロード

次の 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());
}

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 をダウンロードする方法について詳しくは、次のリソースを参照してください。

コード サンプル

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

REST API の操作

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

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

  • この記事は、JavaScript/Typescript の Blob Storage 開発者ガイドの一部です。 詳細については、JavaScript/Typescript アプリの構築にある開発者ガイド記事の全一覧を参照してください。