Azure Storage Blobs-klientbibliotek för .NET – version 12.15.1

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 och 2019-02-02

Azure Blob Storage är Microsofts objektlagringslösning för molnet. Blob Storage är optimerad för lagring av enorma mängder ostrukturerade data. Ostrukturerade data är data som inte följer en viss datamodell eller definition, till exempel text eller binära data.

| Källkod Paket (NuGet) | API-referensdokumentation | REST API-dokumentation | Produktdokumentation

Komma igång

Installera paketet

Installera Azure Storage Blobs-klientbiblioteket för .NET med NuGet:

dotnet add package Azure.Storage.Blobs

Förutsättningar

Du behöver en Azure-prenumeration och ett lagringskonto för att kunna använda det här paketet.

Om du vill skapa ett nytt lagringskonto kan du använda Azure-portalen, Azure PowerShell eller Azure CLI. Här är ett exempel med Azure CLI:

az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS

Autentisera klienten

För att interagera med Azure Blobs Storage-tjänsten måste du skapa en instans av klassen BlobServiceClient. Azure Identity-biblioteket gör det enkelt att lägga till Azure Active Directory-stöd för autentisering av Azure SDK-klienter med motsvarande Azure-tjänster.

// 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());

Läs mer om hur du aktiverar Azure Active Directory för autentisering med Azure Storage i vår dokumentation och våra exempel.

Viktiga begrepp

Blobblagring är utformat för att:

  • Leverera bilder eller dokument direkt till en webbläsare.
  • Lagra filer för distribuerad åtkomst.
  • Direktuppspelning av video och ljud.
  • Skriva till loggfiler.
  • Lagra data för säkerhetskopiering och återställning, haveriberedskap och arkivering.
  • Lagra data för analys av en tjänst som kan vara lokal eller Azure-värdbaserad.

I blobblagringen finns tre typer av resurser:

  • Lagringskontot som används viaBlobServiceClient
  • En container i lagringskontot som används via BlobContainerClient
  • En blob i en container som används via BlobClient

Läs mer om alternativ för autentisering (inklusive anslutningssträngar, delad nyckel, signaturer för delad nyckel, Active Directory och anonym offentlig åtkomst)i våra exempel.

Trådsäkerhet

Vi garanterar att alla klientinstansmetoder är trådsäkra och oberoende av varandra (riktlinje). Detta säkerställer att rekommendationen att återanvända klientinstanser alltid är säker, även över trådar.

Ytterligare begrepp

Klientalternativ | Åtkomst till svaret | Tidskrävande åtgärder | Hantera fel | Diagnostik | Gäckande | Klientlivslängd

Exempel

Ladda upp en blob

// 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);

Ladda ned en blob

// 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);

Räkna upp blobar

// 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);
}

Asynkrona API:er

Vi har fullt stöd för både synkrona och asynkrona API:er.

// 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);

Felsökning

Alla Blob Service-åtgärder genererar en RequestFailedException vid fel med användbara ErrorCodes. Många av dessa fel kan återställas.

// 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ästa steg

Kom igång med våra blobexempel:

  1. Hello World: Ladda upp, ladda ned och lista blobar (eller asynkront)
  2. Autentisering: Autentisera med anslutningssträngar, offentlig åtkomst, delade nycklar, signaturer för delad åtkomst och Azure Active Directory.

Bidra

Mer information om hur du skapar, testar och bidrar till det här biblioteket finns i Storage CONTRIBUTING.md .

Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns i cla.microsoft.com.

Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Mer information finns i Vanliga frågor och svar om uppförandekoden eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.

Visningar