次の方法で共有


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 アプリの構築」にある開発者ガイドの記事の完全な一覧を参照してください。