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 med hjälp av en filsökväg med metoden BlobClient.downloadToFile . 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 dataström

I följande exempel laddas en blob ned genom att skapa ett Node.js skrivbart dataströmobjekt och sedan skickas till dataströmmen 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 returnerar 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 blobdata i en löftesblobKropp. Mer information finns i exempelanvändningen för webbläsare på BlobClient.download.

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 SDK 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.