Schnellstart: Azure Blob Storage-Clientbibliothek v12 für C++
Hier erfahren Sie mehr über die ersten Schritte mit der Azure Blob Storage-Clientbibliothek v12 für C++. Azure Blob Storage ist die Objektspeicherlösung von Microsoft für die Cloud. Führen Sie die Schritte zum Installieren des Pakets aus, und testen Sie den Beispielcode für grundlegende Aufgaben. Blob Storage ist für die Speicherung großer Mengen unstrukturierter Daten optimiert.
Mit der Azure Blob Storage-Clientbibliothek v12 für C++ ist Folgendes möglich:
- Erstellen eines Containers
- Hochladen eines Blobs in Azure Storage
- Auflisten aller Blobs in einem Container
- Herunterladen des Blobs auf den lokalen Computer
- Löschen eines Containers
Ressourcen:
Voraussetzungen
Einrichten
In diesem Abschnitt wird beschrieben, wie ein Projekt zur Verwendung mit der Azure Blob Storage-Clientbibliothek v12 für C++ vorbereitet wird.
Installieren der Pakete
Mit dem Befehl vcpkg install werden das Azure Storage Blobs SDK für C++ und die erforderlichen Abhängigkeiten installiert:
vcpkg.exe install azure-storage-blobs-cpp:x64-windows
Besuchen Sie GitHub, um weitere Informationen zum Abrufen und Erstellen des Azure SDK für C++ zu erhalten.
Erstellen des Projekts
Erstellen Sie in Visual Studio eine neue C++-Konsolenanwendung für Windows mit dem Namen BlobQuickstartV12.
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:
Melden Sie sich beim Azure-Portal an.
Suchen Sie nach Ihrem Speicherkonto.
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.

Wählen Sie im Bereich Zugriffsschlüssel die Option Schlüssel anzeigen aus.
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.

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

Verwenden Sie diese C++-Klassen um mit diesen Ressourcen zu interagieren:
- BlobServiceClient: Die
BlobServiceClient-Klasse ermöglicht Ihnen, Azure Storage-Ressourcen und Blobcontainer zu bearbeiten. - BlobContainerClient: Die
BlobContainerClient-Klasse ermöglicht Ihnen, Azure Storage-Container und deren Blobs zu bearbeiten. - BlobClient: Die
BlobClient-Klasse ermöglicht Ihnen, Azure Storage-Blobs zu bearbeiten. Dies ist die Basisklasse für alle spezialisierten Blobklassen. - BlockBlobClient: Die
BlockBlobClient-Klasse ermöglicht es Ihnen, Azure Storage-Blockblobs zu bearbeiten.
Codebeispiele
Mit diesen Beispielcodeausschnitten wird veranschaulicht, wie folgende Vorgänge mit der Azure Blob Storage-Clientbibliothek für C++ durchgeführt werden:
- Hinzufügen von Includedateien
- Abrufen der Verbindungszeichenfolge
- Container erstellen
- Hochladen von Blobs in einen Container
- Auflisten der Blobs in einem Container
- Herunterladen von Blobs
- Löschen eines Containers
Hinzufügen von Includedateien
Über das Projektverzeichnis:
- Öffnen Sie in Visual Studio die Projektmappendatei BlobQuickstartV12.sln.
- Öffnen Sie in Visual Studio die Quelldatei BlobQuickstartV12.cpp.
- Entfernen Sie den Code in
main, der automatisch generiert wurde. - Hinzufügen von
#include-Anweisungen
#include <stdlib.h>
#include <iostream>
#include <azure/storage/blobs.hpp>
Abrufen der Verbindungszeichenfolge
Der folgende Code ruft die Verbindungszeichenfolge für das Speicherkonto aus der Umgebungsvariablen ab, die unter Konfigurieren der Speicherverbindungszeichenfolge erstellt wurde.
Fügen Sie diesen Code in main() hinzu:
// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING.
// Note that _MSC_VER is set when using MSVC compiler.
static const char* AZURE_STORAGE_CONNECTION_STRING = "AZURE_STORAGE_CONNECTION_STRING";
#if !defined(_MSC_VER)
const char* connectionString = std::getenv(AZURE_STORAGE_CONNECTION_STRING);
#else
// Use getenv_s for MSVC
size_t requiredSize;
getenv_s(&requiredSize, NULL, NULL, AZURE_STORAGE_CONNECTION_STRING);
if (requiredSize == 0) {
throw std::runtime_error("missing connection string from env.");
}
std::vector<char> value(requiredSize);
getenv_s(&requiredSize, value.data(), value.size(), AZURE_STORAGE_CONNECTION_STRING);
std::string connectionStringStr = std::string(value.begin(), value.end());
const char* connectionString = connectionStringStr.c_str();
#endif
Erstellen eines Containers
Erstellen Sie eine Instanz der BlobContainerClient-Klasse, indem Sie die CreateFromConnectionString-Methode aufrufen. Rufen Sie anschließend CreateIfNotExists auf, um den tatsächliche Container in Ihrem Speicherkonto zu erstellen.
Wichtig
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).
Fügen Sie am Ende von main() den folgenden Code hinzu:
using namespace Azure::Storage::Blobs;
std::string containerName = "myblobcontainer";
// Initialize a new instance of BlobContainerClient
BlobContainerClient containerClient
= BlobContainerClient::CreateFromConnectionString(connectionString, containerName);
// Create the container. This will do nothing if the container already exists.
std::cout << "Creating container: " << containerName << std::endl;
containerClient.CreateIfNotExists();
Hochladen von Blobs in einen Container
Der folgende Codeausschnitt führt folgende Aktionen durch:
- Deklarieren einer Zeichenfolge, die „Hello Azure!“ enthält
- Abrufen eines Verweises auf ein BlockBlobClient-Objekt durch Aufrufen von GetBlockBlobClient für den Container aus dem Abschnitt Erstellen eines Containers
- Hochladen der Zeichenfolge in das Blob durch Aufrufen der Funktion UploadFrom. Mit dieser Funktion wird das Blob erstellt, falls es nicht bereits vorhanden ist, oder aktualisiert, falls es bereits vorhanden ist.
Fügen Sie am Ende von main() den folgenden Code hinzu:
std::string blobName = "blob.txt";
uint8_t blobContent[] = "Hello Azure!";
// Create the block blob client
BlockBlobClient blobClient = containerClient.GetBlockBlobClient(blobName);
// Upload the blob
std::cout << "Uploading blob: " << blobName << std::endl;
blobClient.UploadFrom(blobContent, sizeof(blobContent));
Auflisten der Blobs im Container
Listen Sie die Blobs im Container auf, indem Sie die ListBlobs-Funktion aufrufen. Dem Container wurde nur ein Blob hinzugefügt, sodass bei diesem Vorgang nur dieses Blob zurückgegeben wird.
Fügen Sie am Ende von main() den folgenden Code hinzu:
std::cout << "Listing blobs..." << std::endl;
auto listBlobsResponse = containerClient.ListBlobs();
for (auto blobItem : listBlobsResponse.Blobs)
{
std::cout << "Blob name: " << blobItem.Name << std::endl;
}
Herunterladen von Blobs
Rufen Sie die Eigenschaften des aktualisierten Blobs ab. Deklarieren Sie anschließend ein neues std::vector<uint8_t>-Objekt, und ändern Sie seine Größe, indem Sie die Eigenschaften des hochgeladenen Blobs verwenden. Laden Sie das zuvor erstellte Blob in das neue std::vector<uint8_t>-Objekt herunter, indem Sie die Funktion DownloadTo in der BlobClient-Basisklasse aufrufen. Zeigen Sie abschließend die heruntergeladenen Blobdaten an.
Fügen Sie am Ende von main() den folgenden Code hinzu:
auto properties = blobClient.GetProperties().Value;
std::vector<uint8_t> downloadedBlob(properties.BlobSize);
blobClient.DownloadTo(downloadedBlob.data(), downloadedBlob.size());
std::cout << "Downloaded blob contents: " << std::string(downloadedBlob.begin(), downloadedBlob.end()) << std::endl;
Löschen eines Blobs
Mit dem folgenden Code wird das Blob durch Aufrufen der Funktion BlobClient.Delete aus dem Azure Blob Storage-Container gelöscht.
std::cout << "Deleting blob: " << blobName << std::endl;
blobClient.Delete();
Löschen eines Containers
Im folgenden Code werden die von der App erstellten Ressourcen bereinigt, indem der gesamte Container mithilfe von BlobContainerClient.Delete gelöscht wird.
Fügen Sie am Ende von main() den folgenden Code hinzu:
std::cout << "Deleting container: " << containerName << std::endl;
containerClient.Delete();
Ausführen des Codes
Diese App erstellt einen Container und lädt eine Textdatei in Azure Blob Storage hoch. Im Beispiel werden dann die Blobs im Container aufgelistet, und die Datei wird heruntergeladen und der Dateiinhalt angezeigt. Schließlich löscht die App das Blob und den Container.
Die Ausgabe der App sieht etwa wie das folgende Beispiel aus:
Azure Blob Storage v12 - C++ quickstart sample
Creating container: myblobcontainer
Uploading blob: blob.txt
Listing blobs...
Blob name: blob.txt
Downloaded blob contents: Hello Azure!
Deleting blob: blob.txt
Deleting container: myblobcontainer
Nächste Schritte
In dieser Schnellstartanleitung wurde beschrieben, wie Sie Blobs per C++ hochladen, herunterladen und auflisten. Außerdem haben Sie erfahren, wie Sie einen Azure Blob Storage-Container erstellen und löschen.
Ein C++-Blob Storage-Beispiel finden Sie hier: