使用 JavaScript 或 TypeScript 下載 Blob
本文說明如何使用適用於 JavaScript 的 Azure 儲存體用戶端程式庫來下載 Blob。 您可以將 Blob 資料下載到各種目的地,包括本機檔案路徑、資料流或文字字串。
必要條件
- 本文中的範例假設您已設定專案,以搭配使用適用於 JavaScript 的 Azure Blob 儲存體用戶端程式庫。 若要了解如何設定專案,包括套件安裝、匯入模組,以及建立授權的用戶端物件來處理資料資源,請參閱開始使用 Azure Blob 儲存體和 JavaScript。
- 授權機制必須具有執行下載作業的權限。 若要深入了解,請參閱下列 REST API 作業的授權指導:
下載 Blob
您可以使用下列任一方法來下載 Blob:
- BlobClient.download
- BlobClient.downloadToBuffer (只能在 Node.js 執行階段中使用)
- BlobClient.downloadToFile (只能在 Node.js 執行階段中使用)
下載至檔案路徑
下列範例會搭配使用檔案路徑與 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 儲存體用戶端程式庫下載 Blob,請參閱下列資源。
程式碼範例
檢視本文中的程式碼範例 (GitHub):
- 下載至 JavaScript 或 TypeScript 的檔案
- 下載至 JavaScript 或 TypeScript 的數據流
- 下載至 JavaScript 或 TypeScript 的字串
REST API 操作
適用於 JavaScript 的 Azure SDK 包含建置在 Azure REST API 之上的程式庫,可讓您透過熟悉的 JavaScript 範例與 REST API 作業進行互動。 用來下載 Blob 的用戶端程式庫方法會使用下列 REST API 作業:
- 取得 Blob (REST API)
用戶端程式庫資源
相關內容
- 本文是適用於 JavaScript/Typescript 的 Blob 記憶體開發人員指南的一部分。 若要深入瞭解,請參閱建置 JavaScript/Typescript 應用程式的完整開發人員指南文章清單。