Szybki start: biblioteka klienta usługi Azure Blob Storage w wersji 12 dla platformy .NET

Wprowadzenie do biblioteki klienta usługi Azure Blob Storage w wersji 12 dla platformy .NET. Usługa Azure Blob Storage to rozwiązanie firmy Microsoft do magazynowania obiektów dla chmury. Wykonaj kroki, aby zainstalować pakiet i wypróbować przykładowy kod dla podstawowych zadań. Magazyn obiektów blob jest zoptymalizowany pod kątem przechowywania olbrzymich ilości danych bez struktury.

Użyj biblioteki klienta usługi Azure Blob Storage v12 dla platformy .NET, aby:

  • Tworzenie kontenera
  • Przekazywanie obiektu blob do usługi Azure Storage
  • Lista wszystkich obiektów blob w kontenerze
  • Pobieranie obiektu blob na komputer lokalny
  • Usuwanie kontenera

Dodatkowe zasoby:

Wymagania wstępne

Konfigurowanie

W tej sekcji odpowiedzialności za przygotowanie projektu do pracy z usługą Azure Blob Storage klienta w wersji 12 dla platformy .NET.

Tworzenie projektu

Utwórz aplikację .NET Core o nazwie BlobQuickstartV12.

  1. W oknie konsoli (takim jak cmd, PowerShell lub Bash) użyj polecenia , aby utworzyć nową aplikację konsolową o nazwie dotnet new BlobQuickstartV12. To polecenie tworzy prosty projekt języka C# "Hello world" z pojedynczym plikiem źródłowym: Program.cs.

    dotnet new console -n BlobQuickstartV12
    
  2. Przejdź do nowo utworzonego katalogu BlobQuickstartV12.

    cd BlobQuickstartV12
    
  3. W katalogu BlobQuickstartV12 utwórz inny katalog o nazwie data. W tym miejscu zostaną utworzone i przechowywane pliki danych obiektów blob.

    mkdir data
    

Instalowanie pakietu

W katalogu aplikacji zainstaluj bibliotekę klienta usługi Azure Blob Storage dla platformy .NET za pomocą dotnet add package polecenia .

dotnet add package Azure.Storage.Blobs

Konfigurowanie struktury aplikacji

Z katalogu projektu:

  1. Otwórz plik Program.cs w edytorze.

  2. Usuń Console.WriteLine("Hello World!"); instrukcje .

  3. Dodaj using dyrektywy.

  4. Zaktualizuj deklarację Main metody w celu obsługi asynchronicznej.

    Oto kod:

    using Azure.Storage.Blobs;
    using Azure.Storage.Blobs.Models;
    using System;
    using System.IO;
    using System.Threading.Tasks;
    
    namespace BlobQuickstartV12
    {
        class Program
        {
            static async Task Main()
            {
            }
        }
    }
    

Kopiowanie poświadczeń z witryny Azure Portal

Gdy przykładowa aplikacja wykonuje żądanie do usługi Azure Storage, musi być autoryzowana. Aby autoryzować żądanie, dodaj poświadczenia konta magazynu do aplikacji jako ciąg połączenia. Aby wyświetlić poświadczenia konta magazynu, wykonaj następujące kroki:

  1. Zaloguj się w witrynie Azure Portal.

  2. Odszukaj konto magazynu.

  3. W okienku menu konta magazynu w obszarze Zabezpieczenia i sieć wybierz pozycję Klucze dostępu. W tym miejscu możesz wyświetlić klucze dostępu do konta i pełne parametrów połączenia dla każdego klucza.

    Zrzut ekranu przedstawiający miejsce ustawienia klucza dostępu w Azure Portal

  4. W okienku Klucze dostępu wybierz pozycję Pokaż klucze.

  5. W sekcji key1 znajdź wartość Parametrów połączenia. Wybierz ikonę Kopiuj do schowka, aby skopiować ciąg połączenia. Wartość parametrów połączenia zostanie dodana do zmiennej środowiskowej w następnej sekcji.

    Zrzut ekranu pokazujący sposób kopiowania parametrów połączenia z witryny Azure Portal

Konfigurowanie parametrów połączenia magazynu

Po skopiowaniu parametrów połączenia zapisz je w nowej zmiennej środowiskowej na komputerze lokalnym, na którym działa aplikacja. Aby ustawić zmienną środowiskową, otwórz okno konsoli i postępuj zgodnie z instrukcjami dla systemu operacyjnego. Zastąp <yourconnectionstring> ciąg rzeczywistymi ciągami połączenia.

Windows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Po dodaniu zmiennej środowiskowej w Windows należy uruchomić nowe wystąpienie okna polecenia.

Linux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Ponowne uruchamianie programów

Po dodaniu zmiennej środowiskowej uruchom ponownie wszystkie uruchomione programy, które będą potrzebować odczytania zmiennej środowiskowej. Na przykład przed kontynuowaniem uruchom ponownie środowisko projektowe lub edytor.

Model obiektów

Usługa Azure Blob Storage jest zoptymalizowana pod kątem przechowywania ogromnych 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. Magazyn obiektów blob oferuje trzy typy zasobów:

  • Konto magazynu
  • Kontener na koncie magazynu
  • Obiekt blob w kontenerze

Na poniższym diagramie przedstawiono relacje między tymi zasobami.

Diagram architektury magazynu obiektów blob

Użyj następujących klas .NET, aby wchodzić w interakcje z tymi zasobami:

  • BlobServiceClient:klasa umożliwia manipulowanie zasobami i kontenerami obiektów blob Storage BlobServiceClient Azure.
  • BlobContainerClient:klasa umożliwia manipulowanie kontenerami BlobContainerClient Storage Azure i ich obiektami blob.
  • BlobClient:klasa umożliwia manipulowanie obiektami BlobClient blob platformy Azure Storage blob.

Przykłady kodu

Te przykładowe fragmenty kodu pokazują, jak wykonać następujące czynności przy użyciu biblioteki klienta usługi Azure Blob Storage dla platformy .NET:

Pobieranie parametrów połączenia

Poniższy kod pobiera ciąg połączenia dla konta magazynu ze zmiennej środowiskowej utworzonej w sekcji Konfigurowanie parametrów połączenia magazynu.

Dodaj ten kod wewnątrz Main metody :

Console.WriteLine("Azure Blob Storage v12 - .NET quickstart sample\n");

// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the
// environment variable is created after the application is launched in a
// console or with Visual Studio, the shell or application needs to be closed
// and reloaded to take the environment variable into account.
string connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGE_CONNECTION_STRING");

Tworzenie kontenera

Wybierz nazwę nowego kontenera. Poniższy kod dołącza wartość identyfikatora GUID do nazwy kontenera, aby upewnić się, że jest unikatowa.

Ważne

Nazwy kontenerów muszą być zapisane małymi literami. Aby uzyskać więcej informacji o nazewnictwie kontenerów i obiektów blob, zobacz temat Nazewnictwo i odwoływanie się do kontenerów, obiektów blob i metadanych.

Utwórz wystąpienie klasy BlobServiceClient. Następnie wywołaj metodę CreateBlobContainerAsync, aby utworzyć kontener na koncie magazynu.

Dodaj ten kod na końcu Main metody :

// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

//Create a unique name for the container
string containerName = "quickstartblobs" + Guid.NewGuid().ToString();

// Create the container and return a container client object
BlobContainerClient containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName);

Upload obiektów blob do kontenera

Poniższy fragment kodu:

  1. Tworzy plik tekstowy w lokalnym katalogu danych.
  2. Pobiera odwołanie do obiektu BlobClient przez wywołanie metody GetBlobClient w kontenerze z sekcji Tworzenie kontenera.
  3. Przekazanie lokalnego pliku tekstowego do obiektu blob przez wywołanie metody UploadAsync. Jeśli obiekt blob nie istnieje, zostanie utworzony przez metodę. W przeciwnym razie zostanie zastąpiony.

Dodaj ten kod na końcu Main metody :

// Create a local file in the ./data/ directory for uploading and downloading
string localPath = "./data/";
string fileName = "quickstart" + Guid.NewGuid().ToString() + ".txt";
string localFilePath = Path.Combine(localPath, fileName);

// Write text to the file
await File.WriteAllTextAsync(localFilePath, "Hello, World!");

// Get a reference to a blob
BlobClient blobClient = containerClient.GetBlobClient(fileName);

Console.WriteLine("Uploading to Blob storage as blob:\n\t {0}\n", blobClient.Uri);

// Upload data from the local file
await blobClient.UploadAsync(localFilePath, true);

Wyświetlanie listy obiektów blob w kontenerze

Aby wyświetlić listę obiektów blob w kontenerze, wywołaj metodę GetBlobsAsync. W tym przypadku tylko jeden obiekt blob został dodany do kontenera, więc operacja listingowania zwraca tylko ten jeden obiekt blob.

Dodaj ten kod na końcu Main metody :

Console.WriteLine("Listing blobs...");

// List all blobs in the container
await foreach (BlobItem blobItem in containerClient.GetBlobsAsync())
{
    Console.WriteLine("\t" + blobItem.Name);
}

Pobieranie obiektów blob

Pobierz utworzony wcześniej obiekt blob, wywołując metodę DownloadToAsync. Przykładowy kod dodaje sufiks "POBRANE" do nazwy pliku, aby można było zobaczyć oba pliki w lokalnym systemie plików.

Dodaj ten kod na końcu Main metody :

// Download the blob to a local file
// Append the string "DOWNLOADED" before the .txt extension 
// so you can compare the files in the data directory
string downloadFilePath = localFilePath.Replace(".txt", "DOWNLOADED.txt");

Console.WriteLine("\nDownloading blob to\n\t{0}\n", downloadFilePath);

// Download the blob's contents and save it to a file
await blobClient.DownloadToAsync(downloadFilePath);

Usuwanie kontenera

Poniższy kod czyści zasoby utworzone przez aplikację przez usunięcie całego kontenera za pomocą narzędzia DeleteAsync. Spowoduje to również usunięcie plików lokalnych utworzonych przez aplikację.

Aplikacja wstrzymuje wprowadzanie danych przez użytkownika, wywołując ją przed usunięciem obiektu blob, kontenera Console.ReadLine i plików lokalnych. Jest to dobra okazja do sprawdzenia, czy zasoby zostały rzeczywiście utworzone prawidłowo, zanim zostaną usunięte.

Dodaj ten kod na końcu Main metody :

// Clean up
Console.Write("Press any key to begin clean up");
Console.ReadLine();

Console.WriteLine("Deleting blob container...");
await containerClient.DeleteAsync();

Console.WriteLine("Deleting the local source and downloaded files...");
File.Delete(localFilePath);
File.Delete(downloadFilePath);

Console.WriteLine("Done");

Uruchamianie kodu

Ta aplikacja tworzy plik testowy w lokalnym folderze danych i przesyła go do usługi Blob Storage. Następnie w przykładzie zostanie wymieniona lista obiektów blob w kontenerze i zostanie pobrany plik z nową nazwą, aby można było porównać stary i nowy plik.

Przejdź do katalogu aplikacji, a następnie skompilować i uruchomić aplikację.

dotnet build
dotnet run

Dane wyjściowe aplikacji są podobne do następującego przykładu:

Azure Blob Storage v12 - .NET quickstart sample

Uploading to Blob storage as blob:
         https://mystorageacct.blob.core.windows.net/quickstartblobs60c70d78-8d93-43ae-954d-8322058cfd64/quickstart2fe6c5b4-7918-46cb-96f4-8c4c5cb2fd31.txt

Listing blobs...
        quickstart2fe6c5b4-7918-46cb-96f4-8c4c5cb2fd31.txt

Downloading blob to
        ./data/quickstart2fe6c5b4-7918-46cb-96f4-8c4c5cb2fd31DOWNLOADED.txt

Press any key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done

Przed rozpoczęciem procesu oczyszczania sprawdź, czy w folderze danych są dwa pliki. Możesz je otworzyć i sprawdzić, czy są identyczne.

Po zweryfikowaniu plików naciśnij klawisz Enter, aby usunąć pliki testowe i zakończyć pokaz.

Następne kroki

W tym przewodniku Szybki start opisano następujące czynności: przekazywanie, pobieranie i wyświetlanie listy obiektów blob przy użyciu platformy .NET.

Aby wyświetlić przykładowe aplikacje usługi Blob Storage, przejdź do: