01/05/2023
- Kom godt i gang med Azure Storage og NuGet
- Hvad er Azure Storage?
- Installation af Azure Storage NuGet-pakker
- Forudsætninger
- Nøglekoncepter i Azure.Storage.Common
- Trådsikkerhed
- Migration fra WindowsAzure.Storage NuGet-pakken
- Eksempler på brug
- Fejlhåndtering og fejlfinding
- Yderligere koncepter
- Ofte Stillede Spørgsmål (FAQ)
- Konklusion
Kom godt i gang med Azure Storage og NuGet
Azure Storage er en hjørnesten i moderne cloud-baserede applikationer, der tilbyder skalerbar, sikker og yderst tilgængelig datalagring. Microsofts Azure Storage-service omfatter en række lagringsløsninger, herunder Azure Blobs (objektlagring), Azure Data Lake Storage Gen2, Azure Files og Azure Queues. For .NET-udviklere er integrationen med Azure Storage strømlinet gennem NuGet-pakker, der giver nem adgang til disse kraftfulde tjenester. Denne artikel vil guide dig gennem processen med at bruge Azure Storage med NuGet, herunder installation af de relevante pakker, forståelse af nøglekoncepter og migration fra ældre biblioteker.

Hvad er Azure Storage?
Azure Storage er en Microsoft-administreret cloud-lagringstjeneste, der er designet til at være yderst tilgængelig, sikker, holdbar, skalerbar og redundant. Den leverer en robust platform til lagring af forskellige typer data, fra ustrukturerede objekter som billeder og videoer til strukturerede data som køer og filer. De primære komponenter i Azure Storage inkluderer:
- Azure Blobs: Til lagring af store mængder ustrukturerede data, såsom billeder, dokumenter, videoer og backup-filer.
- Azure Data Lake Storage Gen2: En optimeret analyse-lagringsløsning til big data-analyser.
- Azure Files: Tilbyder fuldt administrerede cloud-filaktier, der kan tilgås via SMB-protokollen.
- Azure Queues: En meddelelsestjeneste til pålidelig meddelelseslevering mellem applikationskomponenter.
Azure.Storage.Common-biblioteket fungerer som en fælles infrastruktur for alle andre Azure Storage-klientbiblioteker i .NET. Det indeholder delt funktionalitet som f.eks. autentificeringsoplysninger og håndtering af forespørgselsfejl, hvilket sikrer en ensartet oplevelse på tværs af forskellige Storage-tjenester.
Installation af Azure Storage NuGet-pakker
For at begynde at bruge Azure Storage i dine .NET-projekter skal du installere de relevante klientbiblioteker via NuGet Package Manager. Hvis du bruger .NET CLI, kan du gøre det med følgende kommandoer:
For at arbejde med Azure Blobs:
dotnet add package Azure.Storage.BlobsFor at arbejde med Azure Queues:
dotnet add package Azure.Storage.QueuesFor at arbejde med Azure Files:
dotnet add package Azure.Storage.Files.SharesNår du installerer en af disse pakker, inkluderes Azure.Storage.Common automatisk som en afhængighed, da den leverer den nødvendige fælles infrastruktur.
Forudsætninger
Før du kan bruge Azure Storage-pakkerne, skal du have følgende:
- En Azure-abonnement: Du skal have et aktivt Azure-abonnement for at kunne oprette og administrere Azure Storage-konti.
- En Azure Storage-konto: Du skal have en Azure Storage-konto til at gemme dine data. Du kan oprette en ny Storage-konto via Azure Portal, Azure PowerShell eller Azure CLI. Her er et eksempel på, hvordan du opretter en Storage-konto ved hjælp af Azure CLI:
az storage account create --name MitStorageKonto --resource-group MinRessourceGruppe --location westus --sku Standard_LRSErstat MitStorageKonto og MinRessourceGruppe med dine egne ønskede navne.
Nøglekoncepter i Azure.Storage.Common
Azure.Storage.Common-klientbiblioteket er afgørende for at interagere med Azure Storage. Det indeholder vigtige koncepter, der er fælles for alle Storage-tjenester:
- Autentificeringsoplysninger: Biblioteket håndterer forskellige former for autentificering, herunder adgangsnøgler og Shared Access Signatures (SAS), hvilket sikrer sikker adgang til dine lagringsressourcer.
- RequestFailedException: Dette er en undtagelse, der kastes, når en anmodning til en Azure Storage-tjeneste mislykkes. Den indeholder nyttige oplysninger som f.eks. en
ErrorCode, der hjælper med fejlfinding.
Trådsikkerhed
En af de vigtigste garantier fra Azure Storage-klientbibliotekerne er deres trådsikkerhed. Alle klientinstansmetoder er garanteret at være trådsikre og uafhængige af hinanden. Dette betyder, at du trygt kan genbruge klientinstanser på tværs af flere tråde i din applikation uden at bekymre dig om race conditions eller datakorruption. Denne tilgang forbedrer ydeevnen og ressourceudnyttelsen betydeligt.
Migration fra WindowsAzure.Storage NuGet-pakken
Mange eksisterende applikationer bruger den ældre WindowsAzure.Storage NuGet-pakke. Denne pakke er nu markeret som forældet, og dens funktionalitet er blevet opdelt i individuelle komponenter under Azure.Storage-pakkesættet. Overgangen til de nye pakker er en vigtig opdatering for at drage fordel af de seneste funktioner, forbedringer og sikkerhedsopdateringer.
Hvad skete der med WindowsAzure.Storage?
Den ældre WindowsAzure.Storage-pakke samlede funktionaliteten for Blobs, Queues og Tables i én samlet pakke. Med introduktionen af Azure SDK for .NET's nye designprincip er disse tjenester blevet adskilt i separate, mere fokuserede pakker (Azure.Storage.Blobs, Azure.Storage.Queues, Azure.Storage.Files.Shares). Denne opdeling giver bedre modularitet og gør det nemmere at administrere afhængigheder.
Sammenligning af ældre og nye mønstre
Lad os se på, hvordan du opretter klienter for forskellige Storage-tjenester ved hjælp af det ældre mønster og det tilsvarende nye mønster:
| Tjeneste | Ældre Mønster (WindowsAzure.Storage) | Nyt Mønster (Azure.Storage) |
|---|---|---|
| Blob Storage | var client = account.CreateCloudBlobClient(); var container = client.GetContainerReference(containerName); var blob = container.GetBlockBlobReference(path); | BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); BlobClient blobClient = blobServiceClient.GetBlobClient(blobName); |
| Queue Storage | var client = account.CreateCloudQueueClient(); var queue = client.GetQueueReference(queueName); | QueueServiceClient queueServiceClient = new QueueServiceClient(connectionString); QueueClient queueClient = queueServiceClient.GetQueueClient(queueName); |
| File Storage | var client = account.CreateCloudFileClient(); var share = client.GetShareReference(shareName); | ShareServiceClient shareServiceClient = new ShareServiceClient(connectionString); ShareClient shareClient = shareServiceClient.GetShareClient(shareName); |
Bemærk: I det nye mønster bruges ofte en connection string, der indeholder kontooplysninger og godkendelsesmetode, eller du kan bruge StorageSharedKeyCredential eller StorageAccount-objekter til at konstruere klienterne.
Migreringsstrategi
For at migrere din kodebase:
- Afinstaller den ældre pakke: Fjern
WindowsAzure.Storagefra dine projekter. - Installer de nye pakker: Tilføj de relevante
Azure.Storage.*-pakker (f.eks.Azure.Storage.Blobs). - Opdater din kode: Omskriv din kode til at bruge de nye klientkonstruktører og metoder som vist i tabellen ovenfor. Dette vil sandsynligvis involvere at opdatere, hvordan du opretter klienter og interagerer med Storage-ressourcer.
- Håndter ændringer i API'en: Vær opmærksom på, at API'en er blevet ændret. F.eks. bruges
GetTableReferenceikke længere direkte i de nye pakker; du skal muligvis bruge en ny tilgang til Table Storage, hvis du bruger det. (Bemærk: Azure Table Storage-funktionalitet er nu i pakkenAzure.Data.Tables).
Eksempler på brug
Her er et simpelt eksempel på, hvordan du uploader en blob til Azure Blob Storage ved hjælp af den nye Azure.Storage.Blobs-pakke:
using Azure.Storage.Blobs; using System; using System.IO; using System.Threading.Tasks; public class BlobUploader { public async Task UploadBlobAsync(string connectionString, string containerName, string blobName, string filePath) { // Opret en BlobServiceClient BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); // Hent en reference til containeren BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName); // Opret containeren, hvis den ikke eksisterer await containerClient.CreateIfNotExistsAsync(); // Hent en reference til blogen BlobClient blobClient = containerClient.GetBlobClient(blobName); // Upload filen til blogen using (FileStream uploadFileStream = File.OpenRead(filePath)) { await blobClient.UploadAsync(uploadFileStream, true); // 'true' for at overskrive, hvis blogen allerede eksisterer Console.WriteLine($"Successfully uploaded blob '{blobName}' to container '{containerName}'."); } } }Du skal erstatte connectionString, containerName, blobName og filePath med dine faktiske værdier.
Fejlhåndtering og fejlfinding
Når du arbejder med Azure Storage, er det vigtigt at have en robust fejlhåndteringsstrategi. Som nævnt kaster Azure Storage-tjenester en RequestFailedException ved fejl. Hvis flere fejl opstår samtidigt, kan en AggregateException blive kastet, som indeholder flere fejlinstanser.
Når du støder på fejl, skal du kigge efter ErrorCode i RequestFailedException for at få specifikke oplysninger om problemet. Almindelige fejl kan omfatte autentificeringsproblemer, ugyldige anmodninger eller ressourcekonflikter.
Yderligere koncepter
Azure SDK for .NET giver omfattende dokumentation og eksempler for at hjælpe dig med at mestre brugen af Azure Storage:
- Klientindstillinger: Tilpas klientadfærd, såsom timeouts og politikker for forsøg igen.
- Adgang til svar: Lær at få adgang til detaljerede oplysninger fra tjenestesvar.
- Langvarige operationer: Forstå, hvordan du håndterer operationer, der tager længere tid at fuldføre.
- Diagnostik: Konfigurer diagnostik og logning for at spore og fejlfinde interaktioner med Storage-tjenester.
- Mocking: Lær, hvordan du mock'er Azure Storage-klienter til enhedstest.
- Klientlevetid: Forstå bedste praksis for styring af klientinstansers livscyklus.
Ofte Stillede Spørgsmål (FAQ)
Hvilke .NET-versioner understøttes af Azure Storage NuGet-pakkerne?
De nyeste Azure Storage NuGet-pakker understøtter typisk moderne .NET-versioner som .NET Core, .NET 5, .NET 6 og nyere. Det anbefales at bruge en understøttet .NET-version for at få de bedste resultater.
Hvordan godkender jeg mig til Azure Storage?
Du kan godkende dig selv ved hjælp af en connection string, adgangsnøgler (via StorageSharedKeyCredential) eller Shared Access Signatures (SAS). Valget afhænger af dine sikkerhedskrav og den specifikke service, du bruger.
Hvor finder jeg eksempler på kode?
Microsofts officielle dokumentation indeholder et væld af eksempler for Blobs, Queues og Files. Du kan også finde eksempler i GitHub-repositoryet for Azure SDK for .NET.
Hvad er forskellen mellem Azure.Storage.Blobs og Azure.Storage.Common?
Azure.Storage.Common indeholder delt infrastruktur, der bruges af alle Azure Storage-klientbiblioteker. Azure.Storage.Blobs er specifikt til interaktion med Azure Blob Storage og bygger oven på den fælles infrastruktur fra Azure.Storage.Common.
Konklusion
Integrationen af Azure Storage med .NET via NuGet er en ligetil proces, der åbner op for en verden af skalerbare og pålidelige cloud-lagringsmuligheder. Ved at følge denne guide og forstå de nye pakker og deres anvendelse, kan du effektivt migrere eksisterende projekter og bygge nye applikationer, der udnytter kraften i Azure Storage. Husk altid at konsultere den officielle dokumentation for de mest opdaterede oplysninger og avancerede brugsscenarier.
Hvis du vil læse andre artikler, der ligner Azure Storage med NuGet: Din Guide, kan du besøge kategorien Teknologi.
