What happened to Windows Azure Storage NuGet package?

Azure Storage med NuGet: Din Guide

01/05/2023

Rating: 4.12 (10565 votes)

Indholdsfortegnelse

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.

How do I use Azure Storage with NuGet?
Install the Azure Storage client library for .NET you'd like to use with NuGet and the Azure.Storage.Common client library will be included: You need an Azure subscription and a Storage Account to use this package. To create a new Storage Account, you can use the Azure Portal, Azure PowerShell, or the Azure CLI.

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.Blobs

For at arbejde med Azure Queues:

dotnet add package Azure.Storage.Queues

For at arbejde med Azure Files:

dotnet add package Azure.Storage.Files.Shares

Nå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_LRS

Erstat 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 Storagevar client = account.CreateCloudBlobClient(); var container = client.GetContainerReference(containerName); var blob = container.GetBlockBlobReference(path);BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); BlobClient blobClient = blobServiceClient.GetBlobClient(blobName);
Queue Storagevar client = account.CreateCloudQueueClient(); var queue = client.GetQueueReference(queueName);QueueServiceClient queueServiceClient = new QueueServiceClient(connectionString); QueueClient queueClient = queueServiceClient.GetQueueClient(queueName);
File Storagevar 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:

  1. Afinstaller den ældre pakke: Fjern WindowsAzure.Storage fra dine projekter.
  2. Installer de nye pakker: Tilføj de relevante Azure.Storage.*-pakker (f.eks. Azure.Storage.Blobs).
  3. 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.
  4. Håndter ændringer i API'en: Vær opmærksom på, at API'en er blevet ændret. F.eks. bruges GetTableReference ikke 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 pakken Azure.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.

Go up