Een blob downloaden met JavaScript

In dit artikel wordt beschreven hoe u een blob downloadt met behulp van de Azure Storage-clientbibliotheek voor JavaScript. U kunt blobgegevens downloaden naar verschillende bestemmingen, waaronder een lokaal bestandspad, een stroom of een teksttekenreeks.

Vereisten

  • In de voorbeelden in dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld om te werken met de Azure Blob Storage-clientbibliotheek voor JavaScript. Zie Aan de slag met Azure Blob Storage en JavaScript voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het importeren van modules en het maken van een geautoriseerd clientobject voor het werken met gegevensbronnen.
  • Het autorisatiemechanisme moet machtigingen hebben om een downloadbewerking uit te voeren. Zie de autorisatierichtlijnen voor de volgende REST API-bewerking voor meer informatie:

Een blob downloaden

U kunt een van de volgende methoden gebruiken om een blob te downloaden:

Downloaden naar een bestandspad

In het volgende voorbeeld wordt een blob gedownload met behulp van een bestandspad met de methode BlobClient.downloadToFile . Deze methode is alleen beschikbaar in de Node.js runtime:

async function downloadBlobToFile(containerClient, blobName, fileNameWithPath) {

    const blobClient = containerClient.getBlobClient(blobName);
    
    await blobClient.downloadToFile(fileNameWithPath);
    console.log(`download of ${blobName} success`);
}

Downloaden als een stream

In het volgende voorbeeld wordt een blob gedownload door een Node.js beschrijfbaar streamobject te maken en vervolgens door te sluisen naar die stroom met de methode BlobClient.download .

async function downloadBlobAsStream(containerClient, blobName, writableStream) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    downloadResponse.readableStreamBody.pipe(writableStream);
    console.log(`download of ${blobName} succeeded`);
}

Downloaden naar een tekenreeks

In het volgende Node.js voorbeeld wordt een blob gedownload naar een tekenreeks met de methode BlobClient.download . In Node.js worden blobgegevens geretourneerd in een 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());
}

async 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);
    });
}

Als u met JavaScript werkt in de browser, worden blobgegevens geretourneerd in een promise blobBody. Zie het voorbeeldgebruik voor browsers op BlobClient.download voor meer informatie.

Resources

Zie de volgende bronnen voor meer informatie over het downloaden van blobs met behulp van de Azure Blob Storage-clientbibliotheek voor JavaScript.

REST API-bewerkingen

De Azure SDK voor JavaScript bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via vertrouwde JavaScript-paradigma's. De clientbibliotheekmethoden voor het downloaden van blobs gebruiken de volgende REST API-bewerking:

Codevoorbeelden

Bekijk codevoorbeelden uit dit artikel (GitHub):

Resources voor clientbibliotheek