Azure Storage Blobs-Clientbibliothek für .NET – Version 12.19.0
Serverversion: 2021-02-12, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12, 2020-04-08, 2020-02-10, 2019-12-12, 2019-07-07 und 2019-02-02
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 und keiner bestimmten Definition entsprechen (also beispielsweise Text- oder Binärdaten).
Quellcode | Paket (NuGet) | API-Referenzdokumentation | DOKUMENTATION | ZUR REST-APIProduktdokumentation
Erste Schritte
Installieren des Pakets
Installieren Sie die Azure Storage Blobs-Clientbibliothek für .NET mit NuGet:
dotnet add package Azure.Storage.Blobs
Voraussetzungen
Sie benötigen ein Azure-Abonnement und ein Speicherkonto , um dieses Paket verwenden zu können.
Um ein neues Speicherkonto zu erstellen, können Sie das Azure-Portal, Azure PowerShell oder die Azure CLI verwenden. Beispiel für die Verwendung der Azure-Befehlszeilenschnittstelle:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Authentifizieren des Clients
Um mit dem Azure Blobs Storage-Dienst zu interagieren, müssen Sie eine instance der BlobServiceClient-Klasse erstellen. Die Azure Identity-Bibliothek erleichtert das Hinzufügen von Azure Active Directory-Unterstützung für die Authentifizierung von Azure SDK-Clients mit den entsprechenden Azure-Diensten.
// Create a BlobServiceClient that will authenticate through Active Directory
Uri accountUri = new Uri("https://MYSTORAGEACCOUNT.blob.core.windows.net/");
BlobServiceClient client = new BlobServiceClient(accountUri, new DefaultAzureCredential());
Weitere Informationen zum Aktivieren von Azure Active Directory für die Authentifizierung mit Azure Storage finden Sie in unserer Dokumentation und in unseren Beispielen.
Wichtige Begriffe
Blobspeicher ist für Folgendes konzipiert:
- Speichern von Bildern oder Dokumenten direkt für 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 Storage bietet drei Typen von Ressourcen:
- Das verwendete Speicherkonto über
BlobServiceClient
- Ein Container im Speicherkonto, das über
BlobContainerClient
- Ein Blob in einem Container, der über
BlobClient
Weitere Informationen zu Authentifizierungsoptionen (einschließlich Verbindungszeichenfolgen, freigegebener Schlüssel, Shared Key Signatures, Active Directory und anonymer öffentlicher Zugriff)finden Sie in unseren Beispielen.
Threadsicherheit
Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.
Zusätzliche Konzepte
Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer
Beispiele
Hochladen eines Blobs
// Get a connection string to our Azure Storage account. You can
// obtain your connection string from the Azure Portal (click
// Access Keys under Settings in the Portal Storage account blade)
// or using the Azure CLI with:
//
// az storage account show-connection-string --name <account_name> --resource-group <resource_group>
//
// And you can provide the connection string to your application
// using an environment variable.
string connectionString = "<connection_string>";
string containerName = "sample-container";
string blobName = "sample-blob";
string filePath = "sample-file";
// Get a reference to a container named "sample-container" and then create it
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
container.Create();
// Get a reference to a blob named "sample-file" in a container named "sample-container"
BlobClient blob = container.GetBlobClient(blobName);
// Upload local file
blob.Upload(filePath);
Herunterladen eines Blobs
// Get a temporary path on disk where we can download the file
string downloadPath = "hello.jpg";
// Download the public blob at https://aka.ms/bloburl
new BlobClient(new Uri("https://aka.ms/bloburl")).DownloadTo(downloadPath);
Auflisten von Blobs
// Get a connection string to our Azure Storage account.
string connectionString = "<connection_string>";
string containerName = "sample-container";
string filePath = "hello.jpg";
// Get a reference to a container named "sample-container" and then create it
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
container.Create();
// Upload a few blobs so we have something to list
container.UploadBlob("first", File.OpenRead(filePath));
container.UploadBlob("second", File.OpenRead(filePath));
container.UploadBlob("third", File.OpenRead(filePath));
// Print out all the blob names
foreach (BlobItem blob in container.GetBlobs())
{
Console.WriteLine(blob.Name);
}
Asynchrone APIs
Wir unterstützen sowohl synchrone als auch asynchrone APIs vollständig.
// Get a temporary path on disk where we can download the file
string downloadPath = "hello.jpg";
// Download the public blob at https://aka.ms/bloburl
await new BlobClient(new Uri("https://aka.ms/bloburl")).DownloadToAsync(downloadPath);
Problembehandlung
Alle Blobdienstvorgänge lösen eine RequestFailedException bei Einem Fehler mit hilfreichenErrorCode
s aus. Viele dieser Fehler können wiederhergestellt werden.
// Get a connection string to our Azure Storage account.
string connectionString = "<connection_string>";
string containerName = "sample-container";
// Try to delete a container named "sample-container" and avoid any potential race conditions
// that might arise by checking if the container is already deleted or is in the process
// of being deleted.
BlobContainerClient container = new BlobContainerClient(connectionString, containerName);
try
{
container.Delete();
}
catch (RequestFailedException ex)
when (ex.ErrorCode == BlobErrorCode.ContainerBeingDeleted ||
ex.ErrorCode == BlobErrorCode.ContainerNotFound)
{
// Ignore any errors if the container being deleted or if it has already been deleted
}
Nächste Schritte
Erste Schritte mit unseren Blobbeispielen:
- Hallo Welt: Hochladen, Herunterladen und Auflisten von Blobs (oder asynchron)
- Authentifizierung: Authentifizieren Sie sich mit Verbindungszeichenfolgen, öffentlichem Zugriff, freigegebenen Schlüsseln, Shared Access Signatures und Azure Active Directory.
Mitwirken
Weitere Informationen zum Erstellen, Testen und Mitwirken zu dieser Bibliothek finden Sie im CONTRIBUTING.md Storage .
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.