Herunterladen eines Blobs mit JavaScript oder TypeScript

In diesem Artikel wird beschrieben, wie ein Blob mithilfe der Azure Storage-Clientbibliothek für JavaScript heruntergeladen wird. Sie können Blobdaten an verschiedene Ziele herunterladen, einschließlich einen lokalen Dateipfad, einen Stream oder eine Textzeichenfolge.

Voraussetzungen

  • Bei den Beispielen in diesem Artikel wird davon ausgegangen, dass Sie bereits ein Projekt eingerichtet haben, das mit der Azure Blob Storage Clientbibliothek für JavaScript arbeitet. Informationen zum Einrichten Ihres Projekts, einschließlich der Paketinstallation, dem Importieren von Modulen und dem Erstellen eines autorisierten Clientobjekts für die Verwendung mit Datenressourcen, finden Sie unter Erste Schritte mit Azure Blob Storage und JavaScript.
  • Der Autorisierungsmechanismus muss über Berechtigungen zum Ausführen eines Downloadvorgangs verfügen. Weitere Informationen finden Sie im Autorisierungsleitfaden für die folgenden REST-API-Vorgänge:

Herunterladen eines Blobs

Sie können eine der folgenden Methoden verwenden, um ein Blob herunterzuladen:

In einen Dateipfad herunterladen

Im folgenden Beispiel wird ein Blob unter Verwendung eines Dateipfads mit der Methode BlobClient.downloadToFile heruntergeladen. Diese Methode ist nur in der Node.js-Runtime verfügbar:

async function downloadBlobToFile(containerClient, blobName, localFilePath) {

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

Herunterladen als Stream

Im folgenden Beispiel wird ein Blob heruntergeladen, indem ein Node.js beschreibbares Streamobjekt erstellt und dann mit der Methode BlobClient.download an diesen Stream geleitet wird.

async function downloadBlobAsStream(containerClient, blobName, writableStream) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    downloadResponse.readableStreamBody.pipe(writableStream);
}

In eine Zeichenfolge herunterladen

Im folgenden Node.js-Beispiel wird ein Blob mit der Methode BlobClient.download in eine Zeichenfolge heruntergeladen. In Node.js werden Blobdaten in einem readableStreamBody zurückgegeben.

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

Wenn Sie mit JavaScript im Browser arbeiten, werden die Blob-Daten als Promise blobBody zurückgegeben. Weitere Informationen finden Sie in der Beispielverwendung für Browser unter BlobClient.download.

Überprüfung der Datenübertragung beim Download

Die Übertragungsüberprüfung mit CRC64 bietet datenintegrität auf Clientebene für Azure Blob Storage, sodass Sie überprüfen können, ob die von Ihrer Anwendung gesendeten Daten die gleichen Daten sind, die von Azure gespeichert und gelesen werden. Wenn diese Option aktiviert ist, berechnet und überprüft das Blob SDK CRC64-Prüfsummen während Upload- und Downloadvorgängen, während der Dienst CRC64-Prüfsummen für die empfangenen und zurückgegebenen Daten unabhängig berechnet und überprüft. Die Überprüfung erfolgt für jede Anforderung und über den vollständigen Datenstrom hinweg, um sicherzustellen, dass das gesamte Blob auch dann überprüft wird, wenn Daten in Partitionen übertragen werden, z. B. Blockuploads oder Bereichslesevorgänge. Weitere Informationen finden Sie unter "Strukturiertes Textformat ".

Übertragungsüberprüfungsoptionen können mithilfe von BlobClientConfig auf Clientebene definiert werden, wodurch Validierungsoptionen auf alle Methoden angewendet werden, die von einer BlobClient-Instanz aufgerufen werden. Alternativ können Sie Übertragungsüberprüfungsoptionen auf Vorgangsebene über Optionen wie BlobDownloadOptions außer Kraft setzen.

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

Ressourcen

Weitere Informationen zum Herunterladen von Blobs mithilfe der Azure Blob Storage-Clientbibliothek für JavaScript finden Sie in den folgenden Ressourcen.

Codebeispiele

Sehen Sie sich Codebeispiele aus diesem Artikel (GitHub) an:

REST-API-Vorgänge

Das Azure SDK für JavaScript enthält Bibliotheken, die auf der zugrunde liegenden Azure-REST-API basieren und ermöglicht Ihnen dadurch die Interaktion mit REST-API-Vorgängen über vertraute JavaScript-Paradigmen. Die Methoden der Clientbibliothek zum Herunterladen von Blobs verwenden den folgenden REST-API-Vorgang:

Ressourcen zur Clientbibliothek

  • Dieser Artikel ist Teil des Blob Storage-Entwicklerleitfadens für JavaScript/TypeScript. Weitere Informationen finden Sie in der vollständigen Liste der Entwicklerleitfäden unter Erstellen Ihrer JavaScript-/TypeScript-App.