Erste Schritte mit Azure Blob Storage und .NET
In diesem Artikel erfahren Sie, wie Sie mithilfe der Azure Blob Storage-Clientbibliothek für .NET eine Verbindung mit Azure Blob Storage herstellen. Nach der Verbindung kann Ihr Code Container, Blobs und Features des Blob Storage-Diensts verwenden.
API-Dokumentation | Bibliotheksquellcode | Paket (NuGet) | Beispiele | Feedback geben
Voraussetzungen
- Azure-Abonnement – Erstellen eines kostenlosen Kontos
- Azure Storage-Konto – Erstellen eines Speicherkontos
- Neuestes .NET SDK für Ihr Betriebssystem. Laden Sie unbedingt das SDK und nicht die Runtime herunter.
Einrichten des Projekts
In diesem Abschnitt wird beschrieben, wie ein Projekt zur Verwendung mit der Azure Blob Storage-Clientbibliothek für .NET vorbereitet wird.
Installieren Sie in Ihrem Projektverzeichnis mithilfe des Befehls dotnet add package
Pakete für die Azure Blob Storage- und Azure Identity-Clientbibliotheken. Für kennwortlose Verbindungen mit Azure-Diensten wird das Azure.Identity-Paket benötigt.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Fügen Sie diese using
-Anweisungen am Anfang der Codedatei hinzu:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Informationen zur Blob-Clientbibliothek:
Azure.Storage.Blobs: Enthält die primären Klassen (Clientobjekte), die Sie für den Betrieb mit dem Dienst, Containern und Blobs verwenden können.
Azure.Storage.Blobs.Specialized: Enthält Klassen, die Sie zum Ausführen spezifischer Vorgänge für einen Blobtyp, z. B. Blockblobs, verwenden können.
Azure.Storage.Blobs.Models: Alle anderen Hilfsklassen, Strukturen und Enumerationstypen.
Autorisieren des Zugriffs und Herstellen einer Verbindung mit Blob Storage
Um eine Verbindung zwischen einer App und Blob Storage herzustellen, erstellen Sie eine Instanz der Klasse BlobServiceClient. Dieses Objekt ist Ihr Ausgangspunkt für die Interaktion mit Datenressourcen auf Speicherkontoebene. Sie können es verwenden, um das Speicherkonto und seine Container zu verwenden. Sie können den Dienstclient auch verwenden, um Containerclients oder Blobclients zu erstellen, je nachdem, mit welcher Ressource Sie arbeiten müssen.
Weitere Informationen zum Erstellen und Verwalten von Clientobjekten finden Sie unter Erstellen und Verwalten von Clientobjekten, die mit Datenressourcen interagieren.
Sie können ein BlobServiceClient
-Objekt mithilfe eines Microsoft Entra-Autorisierungstokens, eines Kontozugriffsschlüssels oder einer freigegebenen Zugriffssignatur (SHARED Access Signature, SAS) autorisieren. Um optimale Sicherheit zu gewährleisten, empfiehlt Microsoft möglichst die Verwendung von Microsoft Entra ID mit verwalteten Identitäten, um Anforderungen für Blobdaten zu autorisieren. Weitere Informationen finden Sie unter Autorisieren des Zugriffs auf Blobs mit Microsoft Entra ID.
Um mit Microsoft Entra-ID zu autorisieren, müssen Sie einen Sicherheitsprinzipal verwenden. Der Typ des für Sie erforderlichen Sicherheitsprinzipals ist abhängig davon, wo Ihre App ausgeführt wird. Verwenden Sie diese Tabelle als Richtlinie.
Ausführungsort der App | Sicherheitsprinzipal | Leitfaden |
---|---|---|
Lokaler Computer (Entwickeln und Testen) | Dienstprinzipal | Informationen zum Registrieren der App, zum Einrichten einer Microsoft Entra-Gruppe, zum Zuweisen von Rollen und zum Konfigurieren von Umgebungsvariablen finden Sie unter Zugriff über Entwicklerdienstprinzipien autorisieren |
Lokaler Computer (Entwickeln und Testen) | Benutzeridentität | Informationen zum Einrichten einer Microsoft Entra-Gruppe, zum Zuweisen von Rollen und zum Anmelden bei Azure finden Sie unter Zugriff mit Entwickleranmeldeinformationen autorisieren |
In Azure gehostet | Verwaltete Identität | Informationen zum Aktivieren einer verwalteten Identität und zum Zuweisen von Rollen finden Sie unter Authenticating Azure-hosted apps to Azure resources with the Azure SDK for Python (Authentifizieren von Azure-gehosteten Apps bei Azure-Ressourcen mit dem Azure SDK für Python). |
Außerhalb von Azure gehostet (z. B. lokale Apps) | Dienstprinzipal | Informationen zum Registrieren der App, zum Zuweisen von Rollen und zum Konfigurieren von Umgebungsvariablen finden Sie unter Authenticate to Azure resources from Python apps hosted on-premises (Authentifizieren bei Azure-Ressourcen mit lokal gehosteten Python-Apps). |
Autorisieren des Zugriffs mithilfe von DefaultAzureCredential
Eine einfache und sichere Möglichkeit zum Autorisieren des Zugriffs und zum Herstellen einer Verbindung mit Blob Storage ist das Abrufen eines OAuth-Tokens durch Erstellung einer DefaultAzureCredential-Instanz. Anschließend können Sie mithilfe dieser Anmeldeinformationen ein BlobServiceClient-Objekt erstellen.
Im folgenden Beispiel wird ein BlobServiceClient
-Objekt mit Autorisierung von DefaultAzureCredential
erstellt:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Wenn Sie genau wissen, welchen Anmeldeinformationstyp Sie zum Authentifizieren von Benutzern verwenden werden, können Sie mithilfe anderer Klassen in der Azure Identity-Clientbibliothek für .NET ein OAuth-Token abrufen. Diese Klassen werden von der Klasse TokenCredential abgeleitet.
Weitere Informationen zu den einzelnen Autorisierungsmechanismen finden Sie unter Autorisieren des Zugriffs auf Daten in Azure Storage.
Erstellen der App
Wenn Sie Apps für die Arbeit mit Datenressourcen in Azure Blob Storage erstellen, interagiert Ihr Code primär mit drei Ressourcentypen: Speicherkonten, Container und Blobs. Weitere Informationen zu diesen Ressourcentypen, deren Beziehung zueinander und zur Interaktion von Apps mit Ressourcen finden Sie unter Grundlegendes zur Interaktion von Apps mit Blob Storage-Datenressourcen.
In den folgenden Leitfäden wird Ihnen gezeigt, wie Sie auf Daten zugreifen und bestimmte Aktionen mithilfe der Azure Storage-Clientbibliothek für .NET ausführen:
Handbuch | Beschreibung |
---|---|
Anfügen von Daten an Blobs | Erfahren Sie, wie Sie ein Anfügeblob erstellen und dann Daten an dieses Blob anfügen. |
Konfigurieren einer Wiederholungsrichtlinie | Implementieren Sie Wiederholungsrichtlinien für Clientvorgänge. |
Kopieren von Blobs | Kopieren Sie ein Blob von einem Speicherort an einen anderen. |
Container erstellen | Erstellen von Containern. |
Erstellen einer SAS für die Benutzerdelegierung | Erstellen Sie eine SAS für die Benutzerdelegierung für einen Container oder ein Blob. |
Erstellen und Verwalten von Blobleases | Richten Sie eine Sperre für ein Blob ein, und verwalten Sie sie. |
Erstellen und Verwalten von Containerleases | Richten Sie eine Sperre für einen Container ein, und verwalten Sie sie. |
Löschen und Wiederherstellen von Blobs | Löschen von Blobs und Wiederherstellen gelöschter Blobs, wenn das vorläufige Löschen aktiviert ist. |
Löschen und Wiederherstellen von Containern | Löschen von Containern und Wiederherstellen gelöschter Container, für die vorläufiges Löschen aktiviert ist. |
Herunterladen von Blobs | Herunterladen von Blobs mithilfe von Zeichenfolgen, Streams und Dateipfaden. |
Suchen von Blobs mithilfe von Tags | Festlegen und Abrufen von Tags sowie Verwenden von Tags für die Suche nach Blobs. |
Auflisten von Blobs | Auflisten von Blobs auf unterschiedliche Weise. |
Auflisten von Containern | Auflisten von Containern in einem Konto und der verschiedenen verfügbaren Optionen zum Anpassen einer Auflistung. |
Verwalten von Eigenschaften und Metadaten | Abrufen und Festlegen von Eigenschaften und Metadaten für Blobs. |
Verwalten von Eigenschaften und Metadaten | Abrufen und Festlegen von Eigenschaften und Metadaten für Container. |
Leistungsoptimierung für Datenübertragungen | Optimieren Sie die Leistung für Datenübertragungsvorgänge. |
Festlegen oder Ändern der Zugriffsebene eines Blobs | Legen Sie die Zugriffsebene für ein Blockblob fest, oder ändern Sie sie. |
Hochladen von Blobs | Erfahren Sie, wie Sie Blobs mithilfe von Zeichenfolgen, Streams, Dateipfaden und anderen Methoden hochladen. |