Biblioteka klienta obiektów blob usługi Azure Storage dla platformy .NET — wersja 12.15.1
Wersja serwera: 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 i 2019-02-02
Azure Blob Storage to rozwiązanie do magazynowania obiektów w chmurze firmy Microsoft. Magazyn obiektów blob jest zoptymalizowany pod kątem przechowywania olbrzymich ilości danych bez struktury. Dane bez struktury są danymi, które nie są zgodne z żadnym modelem lub definicją danych, jak na przykład dane tekstowe lub binarne.
Kod | źródłowy Pakiet (NuGet) | Dokumentacja referencyjna interfejsu | API Dokumentacja interfejsu | API REST Dokumentacja produktu
Wprowadzenie
Instalowanie pakietu
Zainstaluj bibliotekę klienta obiektów blob usługi Azure Storage dla platformy .NET przy użyciu narzędzia NuGet:
dotnet add package Azure.Storage.Blobs
Wymagania wstępne
Do korzystania z tego pakietu potrzebna jest subskrypcja platformy Azure i konto magazynu .
Aby utworzyć nowe konto magazynu, możesz użyć witryny Azure Portal, Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Oto przykład użycia interfejsu wiersza polecenia platformy Azure:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Uwierzytelnianie klienta
Aby móc korzystać z usługi Azure Blobs Storage, należy utworzyć wystąpienie klasy BlobServiceClient. Biblioteka tożsamości platformy Azure ułatwia dodawanie obsługi usługi Azure Active Directory na potrzeby uwierzytelniania klientów zestawu Azure SDK przy użyciu odpowiednich usług platformy 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());
Dowiedz się więcej na temat włączania usługi Azure Active Directory do uwierzytelniania za pomocą usługi Azure Storage w naszej dokumentacji i naszych przykładach.
Kluczowe pojęcia
Przeznaczenie usługi Blob Storage:
- Obsługiwanie obrazów i dokumentów bezpośrednio w przeglądarce.
- Przechowywanie plików do dostępu rozproszonego.
- Przesyłanie strumieniowe audio i wideo.
- Zapisywanie plików dziennika.
- Zapisywanie danych w celu tworzenia kopii zapasowych, przywracania, odzyskiwania po awarii i archiwizowania.
- Przechowywanie danych w celu analizy w usłudze lokalnej lub hostowanej na platformie Azure.
Magazyn obiektów blob oferuje trzy typy zasobów:
- Konto magazynu używane za pośrednictwem usługi
BlobServiceClient
- Kontener na koncie magazynu używany za pośrednictwem
BlobContainerClient
- Obiekt blob w kontenerze używany za pośrednictwem
BlobClient
Dowiedz się więcej na temat opcji uwierzytelniania (w tym parametrów połączenia, klucza wspólnego, sygnatur kluczy udostępnionych, usługi Active Directory i anonimowego dostępu publicznego)w naszych przykładach.
Bezpieczeństwo wątkowe
Gwarantujemy, że wszystkie metody wystąpienia klienta są bezpieczne wątkowo i niezależne od siebie (wytyczne). Dzięki temu zalecenie ponownego instalowania wystąpień klienta jest zawsze bezpieczne, nawet w wątkach.
Dodatkowe pojęcia
Opcje | klienta Uzyskiwanie dostępu do odpowiedzi | Długotrwałe operacje | Obsługa błędów | Diagnostyka | Szyderczy | Okres istnienia klienta
Przykłady
Przekazywanie obiektu 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);
Pobieranie obiektu 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);
Wyliczanie obiektów 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);
}
Asynchroniczne interfejsy API
W pełni obsługujemy zarówno synchroniczne, jak i asynchroniczne interfejsy 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);
Rozwiązywanie problemów
Wszystkie operacje usługi Blob service zgłaszają błąd RequestFailedException z przydatnymi ErrorCode
elementami s. Wiele z tych błędów można odzyskać.
// 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
}
Następne kroki
Rozpocznij pracę z naszymi przykładami obiektów blob:
- Hello world: Przekazywanie, pobieranie i wyświetlanie listy obiektów blob (lub asynchronicznie)
- Uwierzytelnianie: Uwierzytelnianie przy użyciu parametrów połączenia, dostępu publicznego, kluczy udostępnionych, sygnatur dostępu współdzielonego i usługi Azure Active Directory.
Współtworzenie
Zobacz CONTRIBUTING.md Storage, aby uzyskać szczegółowe informacje na temat kompilowania, testowania i współtworzenia tej biblioteki.
W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę cla.microsoft.com.
W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com dodatkowymi pytaniami lub komentarzami.