Schnellstart: Verwalten von Blobs per JavaScript v12 SDK in Node.js

In dieser Schnellstartanleitung erfahren Sie, wie Sie Blobs mithilfe von Node.js verwalten. Bei Blobs handelt es sich um Objekte, die große Mengen von Text oder Binärdaten enthalten können, z. B. Bilder, Dokumente, Streamingmedien und Archivdaten.

Diese Beispielcodeausschnitte veranschaulichen, wie Sie die folgenden Vorgänge mithilfe der Azure Blob Storage-Paketbibliothek für JavaScript ausführen:

Zusätzliche Ressourcen:

API-ReferenzQuellcode der BibliothekPaket (npm)Beispiele

Voraussetzungen

Objektmodell

Azure Blob Storage ist für die Speicherung großer Mengen unstrukturierter Daten optimiert. Unstrukturierte Daten sind Daten, die keinem bestimmten Datenmodell und keiner bestimmten Definition entsprechen (also beispielsweise Text- oder Binärdaten). Blob Storage bietet drei Typen von Ressourcen:

  • Das Speicherkonto
  • Einen Container im Speicherkonto
  • Ein Blob im Container

Im folgenden Diagramm ist die Beziehung zwischen diesen Ressourcen dargestellt.

Diagram of Blob storage architecture

Verwenden Sie die folgenden JavaScript-Klassen für die Interaktion mit folgenden Ressourcen:

  • BlobServiceClient: Die BlobServiceClient-Klasse ermöglicht Ihnen, Azure Storage-Ressourcen und Blobcontainer zu bearbeiten.
  • ContainerClient: Die ContainerClient-Klasse ermöglicht Ihnen, Azure Storage-Container und deren Blobs zu bearbeiten.
  • BlobClient: Die BlobClient-Klasse ermöglicht Ihnen, Azure Storage-Blobs zu bearbeiten.

Erstellen des Node.js-Projekts

Erstellen Sie zunächst eine JavaScript-Anwendung mit dem Namen blob-quickstart-v12.

  1. Erstellen Sie in einem Konsolenfenster (z. B. cmd, PowerShell oder Bash) ein neues Verzeichnis für das Projekt.

    mkdir blob-quickstart-v12
    
  2. Wechseln Sie zu dem neu erstellten Verzeichnis blob-quickstart-v12.

    cd blob-quickstart-v12
    
  3. Erstellen Sie eine Datei package.json.

    npm init -y
    
  4. Öffnen Sie das Projekt in Visual Studio Code:

    code .
    

Installieren des npm-Pakets für Blob Storage

  1. Installieren Sie das npm-Paket für Azure Storage:

    npm install @azure/storage-blob
    
  2. Installieren Sie weitere Abhängigkeiten, die in diesem Schnellstart verwendet werden:

    npm install uuid dotenv
    

Erstellen einer JavaScript-Datei

Über das Projektverzeichnis:

  1. Erstellen Sie eine neue Datei mit dem Namen index.js.

  2. Kopieren Sie den folgenden Code in die Datei. Im Rahmen dieses Schnellstarts wird noch mehr Code hinzugefügt.

    const { BlobServiceClient } = require('@azure/storage-blob');
    const { v1: uuidv1} = require('uuid');
    require('dotenv').config()
    
    async function main() {
        console.log('Azure Blob storage v12 - JavaScript quickstart sample');
    
        // Quick start code goes here
    
    }
    
    main()
    .then(() => console.log('Done'))
    .catch((ex) => console.log(ex.message));
    

Kopieren Ihrer Anmeldeinformationen aus dem Azure-Portal

Wenn die Beispielanwendung eine Anforderung an Azure Storage sendet, muss diese autorisiert werden. Fügen Sie zum Autorisieren einer Anforderung die Anmeldeinformationen für Ihr Speicherkonto in Form einer Verbindungszeichenfolge hinzu. Führen Sie zum Anzeigen der Anmeldeinformationen Ihres Speicherkontos die folgenden Schritte aus:

  1. Melden Sie sich beim Azure-Portal an.

  2. Suchen Sie nach Ihrem Speicherkonto.

  3. Wählen Sie im Speicherkonto-Menübereich unter Sicherheit + Netzwerkbetrieb die Option Zugriffsschlüssel aus. Hier können Sie die Kontozugriffsschlüssel und die vollständige Verbindungszeichenfolge für jeden Schlüssel anzeigen.

    Screenshot that shows where the access key settings are in the Azure portal

  4. Wählen Sie im Bereich Zugriffsschlüssel die Option Schlüssel anzeigen aus.

  5. Suchen Sie im Abschnitt key1 nach dem Wert Verbindungszeichenfolge. Wählen Sie das Symbol In Zwischenablage kopieren zum Kopieren der Verbindungszeichenfolge aus. Im nächsten Abschnitt fügen Sie den Wert der Verbindungszeichenfolge in eine Umgebungsvariable ein.

    Screenshot showing how to copy a connection string from the Azure portal

Konfigurieren der Speicherverbindungszeichenfolge

Schreiben Sie die Verbindungszeichenfolge nach dem Kopieren in eine neue Umgebungsvariable auf dem lokalen Computer, auf dem die Anwendung ausgeführt wird. Öffnen Sie zum Festlegen der Umgebungsvariablen ein Konsolenfenster, und befolgen Sie die Anleitung für Ihr Betriebssystem. Ersetzen Sie <yourconnectionstring> durch Ihre Verbindungszeichenfolge.

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Sie müssen nach dem Hinzufügen der Umgebungsvariablen unter Windows eine neue Instanz des Befehlsfensters öffnen.

Neustarten von Programmen

Nachdem Sie die Umgebungsvariable hinzugefügt haben, starten Sie alle ausgeführten Programme neu, in denen die Umgebungsvariable gelesen werden muss. Starten Sie beispielsweise die Entwicklungsumgebung oder den Editor neu, bevor Sie fortfahren.

Abrufen der Verbindungszeichenfolge

Der folgende Code ruft die Verbindungszeichenfolge für das Speicherkonto aus der Umgebungsvariable ab, die im Abschnitt Konfigurieren der Speicherverbindungszeichenfolge erstellt wurde.

Fügen Sie diesen Code in der main-Funktion hinzu:

const AZURE_STORAGE_CONNECTION_STRING =
  process.env.AZURE_STORAGE_CONNECTION_STRING;

if (!AZURE_STORAGE_CONNECTION_STRING) {
  throw Error("Azure Storage Connection string not found");
}

Erstellen eines Containers

  1. Legen Sie einen Namen für den neuen Container fest. Die Containernamen müssen klein geschrieben werden.

    Weitere Informationen zum Benennen von Containern und Blobs finden Sie unter Naming and Referencing Containers, Blobs, and Metadata (Benennen von Containern, Blobs und Metadaten und Verweisen auf diese).

  2. Fügen Sie diesen Code am Ende der main-Funktion hinzu:

    // Create the BlobServiceClient object which will be used to create a container client
    const blobServiceClient = BlobServiceClient.fromConnectionString(
      AZURE_STORAGE_CONNECTION_STRING
    );
    
    // Create a unique name for the container
    const containerName = "quickstart" + uuidv1();
    
    console.log("\nCreating container...");
    console.log("\t", containerName);
    
    // Get a reference to a container
    const containerClient = blobServiceClient.getContainerClient(containerName);
    // Create the container
    const createContainerResponse = await containerClient.create();
    console.log(
      "Container was created successfully. requestId: ",
      createContainerResponse.requestId
    );
    

    Der vorangehende Code erzeugt eine Instanz der Klasse BlobServiceClient durch den Aufruf der Methode fromConnectionString. Rufen Sie dann die getContainerClient-Methode auf, um einen Verweis auf einen Container zu erhalten. Rufen Sie zum schließlich create auf, um den Container in Ihrem Speicherkonto zu erstellen.

Hochladen von Blobs in einen Container

Kopieren Sie den folgenden Code an das Ende der Funktion main, um eine Textzeichenfolge in ein Blob hochzuladen:

// Create a unique name for the blob
const blobName = "quickstart" + uuidv1() + ".txt";

// Get a block blob client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);

console.log("\nUploading to Azure storage as blob:\n\t", blobName);

// Upload data to the blob
const data = "Hello, World!";
const uploadBlobResponse = await blockBlobClient.upload(data, data.length);
console.log(
  "Blob was uploaded successfully. requestId: ",
  uploadBlobResponse.requestId
);

Im vorstehenden Code wird ein Verweis auf ein BlockBlobClient-Objekt abgerufen, indem die getBlockBlobClient-Methode für den ContainerClient aus dem Abschnitt Erstellen eines Containers aufgerufen wird. Der Code lädt die Textzeichenfolgedaten durch Aufrufen der upload-Methode in das Blob hoch.

Auflisten der Blobs in einem Container

Fügen Sie am Ende der Funktion main den folgenden Code hinzu, um die Blobs im Container aufzulisten.

console.log("\nListing blobs...");

// List the blob(s) in the container.
for await (const blob of containerClient.listBlobsFlat()) {
  console.log("\t", blob.name);
}

Der vorangehende Code ruft die Methode listBlobsFlat auf. In diesem Fall wurde dem Container nur ein Blob hinzugefügt, sodass beim Auflisten auch nur ein Blob zurückgegeben wird.

Herunterladen von Blobs

  1. Fügen Sie am Ende der Funktion main den folgenden Code hinzu, um das zuvor erstellte Blob in die App-Runtime herunterzuladen.

    // Get blob content from position 0 to the end
    // In Node.js, get downloaded data by accessing downloadBlockBlobResponse.readableStreamBody
    // In browsers, get downloaded data by accessing downloadBlockBlobResponse.blobBody
    const downloadBlockBlobResponse = await blockBlobClient.download(0);
    console.log("\nDownloaded blob content...");
    console.log(
      "\t",
      await streamToText(downloadBlockBlobResponse.readableStreamBody)
    );
    

    Der vorangehende Code ruft die Methode download auf.

  2. Kopieren Sie den folgenden Code nach der Funktion main, um einen Stream wieder in eine Zeichenfolge zu konvertieren.

    // Convert stream to text
    async function streamToText(readable) {
      readable.setEncoding('utf8');
      let data = '';
      for await (const chunk of readable) {
        data += chunk;
      }
      return data;
    }
    

Löschen eines Containers

Fügen Sie diesen Code am Ende der Funktion main hinzu, um den Container und alle zugehörigen Blobs zu löschen:

// Delete container
console.log("\nDeleting container...");

const deleteContainerResponse = await containerClient.delete();
console.log(
  "Container was deleted successfully. requestId: ",
  deleteContainerResponse.requestId
);

Im vorstehenden Code werden die von der App erstellten Ressourcen bereinigt, indem der gesamte Container mithilfe der Methode delete gelöscht wird. Sie können bei Bedarf auch die lokalen Dateien löschen.

Ausführen des Codes

  1. Führen Sie die App über ein Visual Studio Code-Terminal aus.

    node index.js
    
  2. Die Ausgabe der App sieht etwa wie das folgende Beispiel aus:

    Azure Blob storage v12 - JavaScript quickstart sample
    
    Creating container...
             quickstart4a0780c0-fb72-11e9-b7b9-b387d3c488da
    
    Uploading to Azure Storage as blob:
             quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt
    
    Listing blobs...
             quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt
    
    Downloaded blob content...
             Hello, World!
    
    Deleting container...
    Done
    

Durchlaufen Sie den Code Schritt für Schritt im Debugger, und überprüfen Sie das Azure-Portal während des gesamten Vorgangs. Stellen Sie fest, ob der Container erstellt wurde. Sie können das Blob im Container öffnen und den Inhalt anzeigen.

Verwenden des Speicheremulators

In diesem Schnellstart wurden ein Container und ein Blob in der Azure-Cloud erstellt. Sie können auch das Azure Blob Storage npm-Paket verwenden, um diese Ressourcen für Entwicklung und Tests lokal im Azure-Speicheremulator zu erstellen.

Bereinigung

  1. Wenn Sie den Schnellstart durchgearbeitet haben, löschen Sie das Verzeichnis blob-quickstart-v12.
  2. Wenn Sie Ihre Azure Storage-Ressource nicht mehr benötigen, entfernen Sie die Speicherressource mithilfe der Azure CLI.

Nächste Schritte

In dieser Schnellstartanleitung wurde beschrieben, wie Sie Blobs mit JavaScript hochladen, herunterladen und auflisten.

Tutorials, Beispiele, Schnellstartanleitungen und weiteres Dokumentationsmaterial finden Sie hier: