Freigeben über


Azure Storage Blobs-Clientbibliothek für C++

Azure Blob Storage ist die Objektspeicherlösung von Microsoft für die Cloud. Blob Storage ist für die Speicherung großer Mengen unstrukturierter Daten optimiert. Unstrukturierte Daten sind Daten, die keinem bestimmten Datenmodell oder einer bestimmten Definition entsprechen, z. B. Text oder Binärdaten.

Erste Schritte

Installiere das Paket

Am einfachsten können Sie das C++-SDK erwerben, indem Sie den vcpkg-Paket-Manager nutzen. Siehe den entsprechenden Abschnitt "Azure SDK für C++-Info".

So installieren Sie Azure Storage-Pakete über vcpkg:

vcpkg install azure-storage-blobs-cpp

Verwenden Sie dann in Ihrer CMake-Datei:

find_package(azure-storage-blobs-cpp CONFIG REQUIRED)
target_link_libraries(<your project name> PRIVATE Azure::azure-storage-blobs)

Voraussetzungen

Sie benötigen ein Azure-Abonnement und ein Speicherkonto , um dieses Paket zu verwenden.

Um ein neues Speicherkonto zu erstellen, können Sie das Azure-Portal, Azure PowerShell oder die Azure CLI verwenden.

Erstellen aus Quelle

Laden Sie zuerst das Repository in Ihren lokalen Ordner herunter:

git clone https://github.com/Azure/azure-sdk-for-cpp.git

Erstellen Sie einen neuen Ordner unter dem Stammverzeichnis des lokalen geklonten Repositorys, wechseln Sie in diesen Ordner, und führen Sie die folgenden Befehle aus:

Fenster:

cmake .. -A x64
cmake --build . --target azure-storage-blobs

oder Unix:

cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake --build . --target azure-storage-blobs

Wichtige Begriffe

Blobspeicher ist für Folgendes konzipiert:

  • Bereitstellen von Bildern oder Dokumenten direkt an einen Browser.
  • Speichern von Dateien für verteilten Zugriff
  • Video- und Audio-Streaming
  • Schreiben in Protokolldateien.
  • Speichern von Daten für Sicherung und Wiederherstellung, Notfallwiederherstellung und Archivierung
  • Speichern von Daten für Analysen durch einen lokalen oder von Azure gehosteten Dienst

Blob-Speicher bietet drei Arten von Ressourcen:

  • Das über BlobServiceClient
  • Ein Container im Speicherkonto, der über BlobContainerClient
  • Ein Blob in einem Container, der über BlobClient

Erfahren Sie mehr über Die Optionen für die Authentifizierung (einschließlich Verbindungszeichenfolgen, Freigegebener Schlüssel, Freigegebener Schlüsselsignaturen, Active Directory und anonymer öffentlicher Zugriff) in unseren Beispielen.

Threadsicherheit

Wir garantieren, dass alle Clientinstanzmethoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.

Weitere Konzepte

Clientoptionen | Zugreifen auf die Antwort | Vorgänge mit langer Ausführung | Behandeln von Fehlern

Examples

Hochladen eines Blobs

const std::string connectionString = "<connection_string>";
const std::string containerName = "sample-container";
const std::string blobName = "sample-blob";

auto containerClient = BlobContainerClient::CreateFromConnectionString(connectionString, containerName);
containerClient.CreateIfNotExists();

BlockBlobClient blobClient = containerClient.GetBlockBlobClient(blobName);
// upload from local file
blobClient.UploadFrom(localFilePath);
// or upload from memory buffer
blobClinet.UploadFrom(bufferPtr, bufferLength);

Herunterladen eines BLOB

// download to local file
blobClient.DownloadTo(localFilePath);
// or download to memory buffer
blobClinet.DownloadTo(bufferPtr, bufferLength);

Aufzählen von Blobs

for (auto blobPage = containerClient.ListBlobs(); blobPage.HasPage(); blobPage.MoveToNextPage()) {
  for (auto& blob : blobPage.Blobs) {
    // Below is what you want to do with each blob
    std::cout << "blob: " << blob.Name << std::endl;
  }
}

Problembehandlung

Alle Blob-Dienstvorgänge lösen eine StorageException bei Fehlern mit hilfreichen ErrorCodes aus. Viele dieser Fehler können wiederhergestellt werden.

try
{
  containerClient.Delete();
}
catch (Azure::Storage::StorageException& e)
{
  if (e.ErrorCode == "ContainerNotFound")
  {
    // ignore the error if the container does not exist.
  }
  else
  {
    // handle other errors here
  }
}

Nächste Schritte

Erste Schritte mit unseren Blob-Beispielen:

  1. Hochladen und Herunterladen von Blobs
  2. Vorgänge auflisten

Contributing

Weitere Informationen zum Erstellen, Testen und Beitragen zu diesen Bibliotheken finden Sie im Speicher-CONTRIBUTING.md .

Dieses Projekt begrüßt Beiträge und Vorschläge. Die meisten Beiträge erfordern, dass Sie einem Mitwirkenden-Lizenzvertrag (CLA) zustimmen, der erklärt, dass Sie das Recht haben, uns tatsächlich die Rechte zur Nutzung Ihres Beitrags zu gewähren. Weitere Informationen finden Sie unter cla.microsoft.com.

Dieses Projekt hat den Microsoft Open Source Code of Conductübernommen. Weitere Informationen finden Sie im Code of Conduct FAQ oder wenden Sie sich an opencode@microsoft.com mit weiteren Fragen oder Kommentaren.