Mengunduh blob dengan TypeScript

Artikel ini memperlihatkan cara mengunduh blob menggunakan pustaka klien Azure Storage untuk JavaScript. Anda dapat mengunduh data blob ke berbagai tujuan, termasuk jalur file lokal, aliran, atau string teks.

Prasyarat

  • Contoh dalam artikel ini mengasumsikan Anda sudah memiliki proyek yang disiapkan untuk bekerja dengan pustaka klien Azure Blob Storage untuk JavaScript. Untuk mempelajari tentang menyiapkan proyek Anda, termasuk penginstalan paket, mengimpor modul, dan membuat objek klien resmi untuk bekerja dengan sumber daya data, lihat Mulai menggunakan Azure Blob Storage dan TypeScript.
  • Mekanisme otorisasi harus memiliki izin untuk melakukan operasi pengunduhan. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk operasi REST API berikut:

Unduh blob

Anda dapat menggunakan salah satu metode berikut untuk mengunduh blob:

Mengunduh ke jalur file

Contoh berikut mengunduh blob dengan menggunakan jalur file dengan metode BlobClient.downloadToFile . Metode ini hanya tersedia dalam runtime Node.js:

async function downloadBlobToFile(
  containerClient: ContainerClient,
  blobName,
  fileNameWithPath
): Promise<void> {
  const blobClient = await containerClient.getBlobClient(blobName);

  const downloadResult = await blobClient.downloadToFile(fileNameWithPath);
  if (!downloadResult.errorCode) {
    console.log(
      `download of ${blobName} success ${downloadResult.blobCommittedBlockCount}`
    );
  }
}

Mengunduh sebagai aliran

Contoh berikut mengunduh blob dengan membuat objek aliran bisa-tulis Node.js lalu melakukan pembuatan alur ke aliran tersebut dengan metode BlobClient.download.

async function downloadBlobAsStream(
  containerClient: ContainerClient,
  blobName,
  writableStream
) {
  const blobClient: BlobClient = await containerClient.getBlobClient(blobName);

  const downloadResponse = await blobClient.download();

  if (!downloadResponse.errorCode && downloadResponse?.readableStreamBody) {
    downloadResponse.readableStreamBody.pipe(writableStream);
    console.log(`download of ${blobName} succeeded`);
  }
}

Mengunduh ke string

Contoh Node.js berikut mengunduh blob ke string dengan metode BlobClient.download . Dalam Node.js, data blob kembali dalam readableStreamBody.

async function downloadBlobToString(
  containerClient: ContainerClient,
  blobName
): Promise<void> {
  const blobClient: BlobClient = await containerClient.getBlobClient(blobName);

  const downloadResponse: BlobDownloadResponseParsed =
    await blobClient.download();

  if (!downloadResponse.errorCode && downloadResponse.readableStreamBody) {
    const downloaded = await streamToBuffer(
      downloadResponse.readableStreamBody
    );
    if (downloaded) {
      console.log('Downloaded blob content:', downloaded.toString());
    }
  }
}
async function streamToBuffer(readableStream) {
  return new Promise((resolve, reject) => {
    const chunks: Buffer[] = [];

    readableStream.on('data', (data) => {
      const content: Buffer = data instanceof Buffer ? data : Buffer.from(data);
      chunks.push(content);
    });
    readableStream.on('end', () => {
      resolve(Buffer.concat(chunks));
    });
    readableStream.on('error', reject);
  });
}

Jika Anda bekerja dengan JavaScript di browser, data blob akan kembali dalam blobBody janji. Untuk mempelajari lebih lanjut, lihat contoh penggunaan untuk browser di BlobClient.download.

Sumber

Untuk mempelajari selengkapnya tentang cara mengunduh blob menggunakan pustaka klien Azure Blob Storage untuk JavaScript dan TypeScript, lihat sumber daya berikut ini.

Operasi REST API

Azure SDK untuk JavaScript dan TypeScript berisi pustaka yang dibangun di atas Azure REST API, memungkinkan Anda berinteraksi dengan operasi REST API melalui paradigma bahasa yang familier. Metode pustaka klien untuk mengunduh blob menggunakan operasi REST API berikut:

Sampel kode

Lihat sampel kode dari artikel ini (GitHub):

Sumber daya pustaka klien