Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
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.