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:
- BlobClient.download
- BlobClient.downloadToBuffer (hanya tersedia dalam runtime Node.js)
- BlobClient.downloadToFile (hanya tersedia dalam runtime Node.js)
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:
- Mendapatkan Blob (REST API)
Sampel kode
Lihat sampel kode dari artikel ini (GitHub):