Ladda ned en blob med JavaScript eller TypeScript

Den här artikeln visar hur du laddar ned en blob med hjälp av Azure Storage-klientbiblioteket för JavaScript. Du kan ladda ned blobdata till olika mål, inklusive en lokal filsökväg, dataström eller textsträng.

Förutsättningar

  • Exemplen i den här artikeln förutsätter att du redan har ett projekt konfigurerat för att fungera med Azure Blob Storage-klientbiblioteket för JavaScript. Mer information om hur du konfigurerar projektet, inklusive paketinstallation, import av moduler och skapande av ett auktoriserat klientobjekt för att arbeta med dataresurser finns i Kom igång med Azure Blob Storage och JavaScript.
  • Auktoriseringsmekanismen måste ha behörighet att utföra en nedladdningsåtgärd. Mer information finns i auktoriseringsvägledningen för följande REST API-åtgärd:

Ladda ned en blob

Du kan använda någon av följande metoder för att ladda ned en blob:

Ladda ned till en filsökväg

I följande exempel laddas en blob ned genom en filsökväg med BlobClient.downloadToFile-metoden. Den här metoden är endast tillgänglig i Node.js-körningen:

async function downloadBlobToFile(containerClient, blobName, localFilePath) {

    const blobClient = containerClient.getBlobClient(blobName);
    
    await blobClient.downloadToFile(localFilePath);
}

Ladda ned som en ström

I följande exempel laddas en blob ned genom att skapa ett skrivbart Node.js-strömobjekt och sedan koppla till denna ström med metoden BlobClient.download.

async function downloadBlobAsStream(containerClient, blobName, writableStream) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    downloadResponse.readableStreamBody.pipe(writableStream);
}

Ladda ned till en sträng

Följande Node.js exempel laddar ned en blob till en sträng med metoden BlobClient.download . I Node.js så returneras blobdata i en 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);
    });
}

Om du arbetar med JavaScript i webbläsaren, returnerar ett löfte blobdata i blobBody. Mer information finns i exempelanvändningen för webbläsare på BlobClient.download.

Validering av dataöverföring vid nedladdning

Överföringsverifiering med CRC64-NVME ger dataintegritet på klientnivå för Azure Blob Storage, så att du kan kontrollera att data som skickas av ditt program är samma data som lagras och läss från Azure. När det är aktiverat beräknar och validerar Blob SDK CRC64-NVME kontrollsummor under uppladdnings- och nedladdningsåtgärder, medan tjänsten oberoende beräknar och validerar CRC64-NVME kontrollsummor för de data som den tar emot och returnerar. Verifieringen utförs på varje begäran och över hela dataströmmen, vilket säkerställer att hela bloben verifieras även när data överförs i partitioner som blockuppladdningar eller intervallläsningar. Mer information finns i Strukturerat brödtextformat .

Alternativ för överföringsverifiering kan definieras på klientnivå med hjälp av BlobClientConfig, som tillämpar valideringsalternativ på alla metoder som anropas från en BlobClient-instans . Du kan också åsidosätta alternativ för överföringsverifiering på åtgärdsnivå via alternativ, till exempel BlobDownloadOptions.

const blobServiceClient = new BlobServiceClient(
   `https://${account}.blob.core.windows.net`,
   new DefaultAzureCredential(),
   {
     uploadContentChecksumAlgorithm: "StorageCrc64",
     downloadContentChecksumAlgorithm: "StorageCrc64",
   }
);

Resurser

Mer information om hur du laddar ned blobar med hjälp av Azure Blob Storage-klientbiblioteket för JavaScript finns i följande resurser.

Kodexempel

Visa kodexempel från den här artikeln (GitHub):

REST API-åtgärder

Azure SDKs för JavaScript innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta JavaScript-paradigm. Klientbiblioteksmetoderna för att ladda ned blobar använder följande REST API-åtgärd:

Klientbiblioteksresurser

  • Den här artikeln är en del av utvecklarguiden för Blob Storage för JavaScript/TypeScript. Mer information finns i den fullständiga listan över utvecklarguideartiklar i Skapa din JavaScript/TypeScript-app.