Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek ukazuje, jak stáhnout objekt blob pomocí klientské knihovny azure Storage pro JavaScript. Data blobů si můžete stáhnout do různých umístění, včetně lokální cesty k souboru, datového proudu nebo textového řetězce.
Požadavky
- Příklady v tomto článku předpokládají, že už máte projekt nastavený tak, aby fungoval s klientskou knihovnou Azure Blob Storage pro JavaScript. Další informace o nastavení projektu, včetně instalace balíčku, importu modulů a vytvoření autorizovaného klientského objektu pro práci s datovými prostředky, najdete v tématu Začínáme se službou Azure Blob Storage a JavaScriptem.
- Autorizační mechanismus musí mít oprávnění k provedení operace stahování. Další informace najdete v pokynech k autorizaci pro následující operaci rozhraní REST API:
Stáhnout objekt blob
Ke stažení objektu blob můžete použít některou z následujících metod:
- BlobClient.download
- BlobClient.downloadToBuffer (k dispozici pouze v Node.js runtime)
- BlobClient.downloadToFile (k dispozici pouze v modulu runtime Node.js)
Stáhnout do cesty k souboru
Následující příklad stáhne objekt blob pomocí cesty k souboru s metodou BlobClient.downloadToFile . Tato metoda je k dispozici pouze v modulu runtime Node.js:
async function downloadBlobToFile(containerClient, blobName, localFilePath) {
const blobClient = containerClient.getBlobClient(blobName);
await blobClient.downloadToFile(localFilePath);
}
Stáhnout jako stream
Následující příklad stáhne blob vytvořením zapisovatelného datového proudu Node.js a jeho následným přesměrováním do tohoto proudu pomocí metody BlobClient.download.
async function downloadBlobAsStream(containerClient, blobName, writableStream) {
const blobClient = containerClient.getBlobClient(blobName);
const downloadResponse = await blobClient.download();
downloadResponse.readableStreamBody.pipe(writableStream);
}
Stáhnout jako řetězec
Následující Node.js příklad stáhne objekt blob do řetězce pomocí metody BlobClient.download . V Node.js se data blob vracejí v 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);
});
}
Pokud pracujete s JavaScriptem v prohlížeči, data blobu se vracejí v promise blobBody. Další informace najdete v příkladu použití prohlížečů na webu BlobClient.download.
Ověření přenosu dat při stahování
Ověření přenosu pomocí CRC64-NVME poskytuje integritu dat na úrovni klienta pro Azure Blob Storage a umožňuje ověřit, že data odesílaná vaší aplikací jsou stejná data uložená a načtená z Azure. Když je tato možnost povolená, sada Blob SDK vypočítá a ověří CRC64-NVME kontrolní součty během operací nahrávání a stahování, zatímco služba nezávisle vypočítá a ověří CRC64-NVME kontrolní součty pro data, která přijímá a vrací. Ověřování se provádí u každého požadavku i napříč celým datovým tokem, což zajišťuje, že je ověřen celý objekt blob i v případě, že se data přenášejí po částech, například při nahrávání bloků nebo při čtení zadaných rozsahů. Další podrobnosti najdete v části Formát strukturovaného těla .
Možnosti ověření přenosu je možné definovat na úrovni klienta pomocí BlobClientConfig, která používá možnosti ověřování pro všechny metody volané z instance BlobClient . Alternativně můžete přepsat možnosti ověření přenosu na úrovni operace prostřednictvím možností, jako je BlobDownloadOptions.
const blobServiceClient = new BlobServiceClient(
`https://${account}.blob.core.windows.net`,
new DefaultAzureCredential(),
{
uploadContentChecksumAlgorithm: "StorageCrc64",
downloadContentChecksumAlgorithm: "StorageCrc64",
}
);
Zdroje informací
Další informace o tom, jak stáhnout objekty blob pomocí klientské knihovny služby Azure Blob Storage pro JavaScript, najdete v následujících zdrojích informací.
Ukázky kódu
Prohlédněte si ukázky kódu z tohoto článku (GitHub):
Stáhnout do souboru pro JavaScript nebo TypeScript
Stažení streamu pro JavaScript nebo TypeScript
Stažení jako řetězec pro JavaScript nebo TypeScript
Operace rozhraní REST API
Sada Azure SDK pro JavaScript obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat JavaScriptu. Metody klientské knihovny pro stahování objektů blob používají následující operaci rozhraní REST API:
- Získání objektu blob (REST API)
Prostředky klientské knihovny
Související obsah
- Tento článek je součástí příručky pro vývojáře služby Blob Storage pro JavaScript nebo TypeScript. Další informace najdete v úplném seznamu článků příručky pro vývojáře v tématu Sestavení aplikace JavaScript/TypeScript.