Einführung in Azure Storage in C#
Azure Storage ist ein wichtiger Dienst, der von Microsoft Azure angeboten wird. In Kombination mit .NET-Technologien wird er zu einem leistungsstarken Tool für das Speichern und Abrufen von Dateien in der Cloud. In seinem ausführlichen Tutorial "Intro to Azure Storage in C#" führt Tim Corey die Betrachter durch die genauen Schritte der Konfiguration eines Azure-Storage-Kontos, der Einrichtung von Azure Blob Storage und der Integration in ein C# ASP.NET Core MVC-Projekt.
In diesem Artikel werden wir uns eng an Tims Video halten, um jede Phase des Prozesses zu erkunden und die wichtigsten Konzepte und Terminologien zu erörtern, die in der realen Azure-Entwicklung verwendet werden.
Preisgestaltung und Planung von Azure Storage
Tim beginnt damit, die finanzielle Effizienz der Verwendung von Azure Storage in einer C#-Anwendung zu erläutern. Ganz gleich, ob Sie einen Blob-Container zum Speichern von Textdateien, Bildern oder Binärdaten verwenden, die Kosten bleiben minimal. Er stellt den Azure Pricing Calculator vor, mit dem sich die Kosten auf der Grundlage ausgewählter Funktionen wie Leistungsstufen, Redundanzeinstellungen und Datenoperationen schätzen lassen.
Tim wählt Block Blob Storage unter General-purpose v2 im Azure-Portal aus und konfiguriert die Hot-Access-Ebene für häufig genutzte Dateien. Er stellt sicher, dass das Speicherkonto lokal redundanten Speicher (LRS) verwendet, um die Kosten zu minimieren und gleichzeitig die Sicherheit zu gewährleisten.
Für eine Demo-Anwendung, die 1 GB Daten speichert und ein paar tausend Operationen ausführt, belaufen sich die Kosten auf 13 Cent pro Monat", erklärt Tim.
Erstellen des Azure-Speicher-Kontos
Im Azure-Portal demonstriert Tim, wie man eine neue Ressourcengruppe und ein entsprechendes Azure-Storage-Konto erstellt. Die Namenskonventionen sind streng: Die Namen der Speicherkonten müssen eindeutig sein, klein geschrieben werden und dürfen keine Bindestriche enthalten.
Bei der Einrichtung deaktiviert er den georedundanten Speicher, um Kosten zu sparen - ein wichtiger Tipp für Entwickler, die an Prototypen oder lokalen Umgebungen arbeiten. Er ermöglicht auch den anonymen Zugriff auf der Containerebene, allerdings nur zu Demonstrationszwecken - mit dem Hinweis, dass echte Produktionsumgebungen einen gesicherten Zugriff erfordern.

Tim deckt auch die Zugriffsschlüssel, den Verbindungsstring und den Namen des Speicherkontos ab - allesamt unerlässlich, wenn Ihr C#-Projekt eine Verbindung zu Azure-Ressourcen herstellt.
Verstehen Sie Azure Blob Storage
Tim zeigt auf, wie ein Blob-Container verwendet wird, um Daten in Ihrem Azure-Speicherkonto zu organisieren. Er vermeidet die manuelle Erstellung eines neuen Containers über das Portal und plant stattdessen, ihn mit Hilfe des Azure SDK for .NET in Code zu generieren.
Er erklärt, dass sichere Zugriffsschlüssel und die Verbindungszeichenfolge - die in den Sicherheitseinstellungen des Kontos einsehbar sind - in der Anwendung zur Authentifizierung bei der Speicher-Client-Bibliothek verwendet werden.
Start des ASP.NET Core-Projekts
Tim erstellt eine .NET 9 MVC-Webanwendung mit Visual Studio. Obwohl jeder UI-Typ wie Razor Pages oder Blazor Server verwendet werden könnte, wählt er MVC zur Demonstration aus.
Bei 19:35 speichert er in secrets.json sensible Anmeldeinformationen sicher:
-
verbindungszeichenfolge
-
speicherkonto-Schlüssel
-
container-Name
- name des Speicherkontos

Tim erklärt, dass appsettings.json keine Geheimnisse enthalten sollte, da sie in Quellcode-Repositories übertragen wird. Stattdessen sollten Geheimnisse lokal mit User Secrets gespeichert werden, insbesondere während der Entwicklung.
Installation der erforderlichen NuGet-Pakete
Um mit Azure Blob Storage zu interagieren, installiert Tim das NuGet-Paket Azure.Storage.Blobs. Er schätzt es, wie Microsoft mit dem Azure-SDK Funktionen modularisiert hat, was kleinere, besser wartbare Anwendungen ermöglicht.

Anstatt alles im Framework zu bündeln, erhalten Sie jetzt genau das, was Sie brauchen - wie die Azure Blob Client-Bibliothek - über NuGet", betont Tim.
Muster für Konfigurationsoptionen für Azure Storage
Als nächstes erstellt Tim eine POCO-Klasse (BlobStorageOptions), die zu den Schlüsseln in seiner Konfiguration passt. Er verwendet das Options-Muster, um die Konfiguration in stark typisierte Objekte zu binden, was eine zentralisierte und testbare Konfiguration ermöglicht.
Dieses Setup macht es der .NET-App leicht, die Azure-Konfiguration in verschiedenen Umgebungen konsistent zu verwenden.
Implementierung der Logik von Blob Storage Services
Tim fügt einen neuen Ordner namens DataAccess hinzu und implementiert eine Klasse namens BlobStorage.cs. Im Inneren injiziert er die Konfiguration mit IOptions
Er entwickelt zwei primäre asynchrone Methoden:
Datei-Logik hochladen
Die Methode UploadFileAsync:
-
Akzeptiert eine IFormFile aus dem MVC-Frontend.
-
Erzeugt einen BlobContainerClient aus dem Azure Storage SDK unter Verwendung der Verbindungszeichenfolge und des Containernamens.
-
Prüft, ob ein Container vorhanden ist, oder erstellt einen neuen Container, wenn er nicht vorhanden ist.
-
Legt die Zugriffsrichtlinien auf Keine fest, um sicherzustellen, dass der Container nicht öffentlich zugänglich ist.
- Verwendet ein BlobClient-Objekt zum Hochladen der Datei aus einem Stream.
Tim verwendet eine using-Anweisung und einen await-Aufruf, um den Dateistrom sicher zu verarbeiten und Speicherlecks zu vermeiden.
Datei-Logik herunterladen
In DownloadFileAsync, Tim:
-
Akzeptiert einen String-Dateinamen oder eine vollständige Blob-URI.
-
Erstellt einen neuen BlobClient unter Verwendung des URI und sicherer Anmeldedaten.
-
Lädt die Datei mit DownloadStreamingAsync herunter.
- Verpackt den Stream in ein FileContentResult, um Downloads vom Browser zu ermöglichen.
Dadurch wird sichergestellt, dass die Dateien sicher bleiben und nur über die Anwendung zugänglich sind - nicht direkt durch URL-Raten.
Registrierung von Blob-Speicher mit Dependency Injection
Tim definiert eine Schnittstelle (IBlobStorage) für seine Klasse und registriert sie als Singleton im .NET DI-Container. Da die Klasse zustandslos ist und nur Konfigurationswerte verwendet, ist Singleton optimal.
Integration mit der MVC-App
Der Home Controller ist so modifiziert, dass er IBlobStorage verwendet. Sie enthält:
-
Eine UploadFile POST-Methode, die Eingaben validiert und UploadFileAsync aufruft.
- Eine GetFile-POST-Methode, die die URL überprüft und dann DownloadFileAsync aufruft.
Jede Methode interagiert mit dem Speicher-Client, um Blob-Dateien sicher zu handhaben, sei es beim Hochladen oder Herunterladen.
Razor View UI für Dateioperationen
In Index.cshtml richtet Tim die Seite ein:
-
Ein Formular zum Hochladen von Dateien mit input type="file" und Bootstrap-Styling.
-
Ein zweites Formular zum Herunterladen einer Datei unter Verwendung ihrer URI.
-
Behandlung von Fehlermeldungen für Grenzfälle wie fehlende Dateien oder ungültige URIs.
- Ein Anzeigebereich, der die generierte Blob-URI (https) nach einem erfolgreichen Upload anzeigt.
Tim behandelt auch Fehler mit Hilfe einer List
Testen und Überprüfen der Dateisicherheit
Tim lädt eine Textdatei hoch und versucht, im Browser direkt auf den URI zuzugreifen - dies schlägt erwartungsgemäß aufgrund der Zugriffsrichtlinie "Keine" fehl.
Nachdem die Zugriffsstufe im Azure-Portal vorübergehend geändert wurde, kann die Datei über einen direkten Link heruntergeladen werden. Er kehrt jedoch sofort zu "Privat" zurück und betont, dass Azure eine fein abgestufte Kontrolle über die Sicherheit bietet.
Tim's abschließende Empfehlungen
Abschließend erinnert Tim die Entwickler daran, dass Microsoft Azure auch bei minimalen Investitionen einen großen Nutzen bietet. Mit Tools wie:
-
NuGet-Pakete
-
Azure SDK
-
Visuelles Studio
-
Azure-Portal
- Sichere Verbindungszeichenfolgen und Schlüssel
können Sie schnell eine produktionsreife Speicherlösung mit C# erstellen. Ganz gleich, ob Sie an einem großen System oder einem kleinen Testprojekt arbeiten, Azure Blob Storage ist eine skalierbare und kostengünstige Wahl.
Sie zahlen für das, was Sie in der Cloud nutzen - fragen Sie also nur nach dem, was Sie brauchen", betont Tim.
Zusammenfassung
Von der Erstellung eines Speicherkontos und der Konfiguration von Blob-Containern bis hin zur sicheren Handhabung von Up- und Downloads in einer MVC-Anwendung bietet Tim Corey detaillierte Anweisungen, die den gesamten Lebenszyklus der Verwendung von Azure Storage mit .NET abdecken.
Mit diesem Leitfaden und Tims Video können Sie Azure Blob Storage mit Zuversicht nutzen - und dabei die Kontrolle behalten, die Kosten minimieren und die Best Practices der Cloud-Entwicklung einhalten.
Schauen Sie sich sein komplettes Video an, um mehr Klarheit zu erhalten, und besuchen Sie seinen YouTube-Kanal für weitere aufschlussreiche Inhalte zu Azure Storage (C#).
