Sdílet prostřednictvím


Klientská knihovna Azure Storage Blobs pro .NET – verze 12.15.1

Verze serveru: 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 a 2019-02-02-02

Azure Blob Storage je řešení úložiště objektů pro cloud od Microsoftu. Služba Blob Storage je optimalizovaná pro ukládání velkých objemů nestrukturovaných dat. Jde o data, která nevyhovují konkrétnímu datovému modelu nebo definici, například textová nebo binární data.

Zdrojový kód | Balíček (NuGet) | Referenční dokumentace k | rozhraní API Dokumentace k | rozhraní REST API Dokumentace k produktu

Začínáme

Instalace balíčku

Nainstalujte klientskou knihovnu Azure Storage Blobs pro .NET pomocí NuGetu:

dotnet add package Azure.Storage.Blobs

Požadavky

K použití tohoto balíčku potřebujete předplatné Azure a účet úložiště .

K vytvoření nového účtu úložiště můžete použít Azure Portal, Azure PowerShell nebo Azure CLI. Tady je příklad použití Azure CLI:

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

Ověření klienta

Pokud chcete pracovat se službou Azure Blobs Storage, budete muset vytvořit instanci třídy BlobServiceClient. Knihovna Identit Azure usnadňuje přidání podpory Azure Active Directory pro ověřování klientů sady Azure SDK s odpovídajícími službami Azure.

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

Další informace o povolení ověřování ve službě Azure Active Directory ve službě Azure Storage najdete v naší dokumentaci a v našich ukázkách.

Klíčové koncepty

Úložiště objektů blob je navržena pro:

  • Poskytování obrázků nebo dokumentů přímo do prohlížeče
  • Ukládání souborů pro distribuovaný přístup
  • Streamování videa a zvuku
  • Zápis do souborů protokolů
  • Ukládání dat pro zálohování a obnovování, zotavení po havárii a pro archivaci
  • Ukládání dat, která bude analyzovat místní nebo v Azure hostovaná služba

Blob Storage nabízí tři typy prostředků:

  • Účet úložiště použitý prostřednictvímBlobServiceClient
  • Kontejner v účtu úložiště, který se používá prostřednictvímBlobContainerClient
  • Objekt blob v kontejneru, který se používá prostřednictvímBlobClient

Další informace o možnostech ověřování (včetně připojovacích řetězců, sdíleného klíče, podpisů sdíleného klíče, služby Active Directory a anonymního veřejného přístupu)najdete v našich ukázkách.

Bezpečnost vlákna

Zaručujeme, že všechny metody instance klienta jsou bezpečné pro přístup z více vláken a nezávislé na sobě (pokyny). Tím se zajistí, že doporučení opakovaně používat instance klienta je vždy bezpečné, a to i napříč vlákny.

Další koncepty

Možnosti | klienta Přístup k odpovědi | Dlouhotrvající operace | Zpracování selhání | Diagnostika | Zesměšňovat | Životnost klienta

Příklady

Nahrání objektu 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);

Stažení objektu 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);

Vytváření výčtů objektů blob

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

Asynchronní rozhraní API

Plně podporujeme synchronní i asynchronní rozhraní API.

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

Řešení potíží

Všechny operace služby Blob Service vyvolají výjimku RequestFailedException při selhání s užitečnými chybamiErrorCode. Mnoho z těchto chyb je možné obnovit.

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

Další kroky

Začínáme s našimi ukázkami objektů blob:

  1. Hello World: Nahrávání, stahování a výpis objektů blob (nebo asynchronně)
  2. Ověřování: Ověřování pomocí připojovacích řetězců, veřejného přístupu, sdílených klíčů, sdílených přístupových podpisů a Azure Active Directory.

Přispívání

Podrobnosti o vytváření, testování a přispívání do této knihovny najdete na CONTRIBUTING.md úložiště.

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete v cla.microsoft.com.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo kontaktujte s opencode@microsoft.com případnými dalšími dotazy nebo připomínkami.

Imprese