Szybki start: Biblioteka kliencka usługi Azure Blob Storage V12 dla platformy .NETQuickstart: Azure Blob storage client library v12 for .NET

Rozpocznij pracę z biblioteką klienta usługi Azure Blob Storage V12 dla platformy .NET.Get started with the Azure Blob storage client library v12 for .NET. Azure Blob Storage to rozwiązanie do magazynowania obiektów w chmurze firmy Microsoft.Azure Blob storage is Microsoft's object storage solution for the cloud. Postępuj zgodnie z instrukcjami, aby zainstalować pakiet, i wypróbuj przykładowy kod dla podstawowych zadań.Follow steps to install the package and try out example code for basic tasks. Magazyn obiektów blob jest zoptymalizowany pod kątem przechowywania olbrzymich ilości danych bez struktury.Blob storage is optimized for storing massive amounts of unstructured data.

Użyj biblioteki klienta usługi Azure Blob Storage V12 dla platformy .NET, aby:Use the Azure Blob storage client library v12 for .NET to:

  • Tworzenie konteneraCreate a container
  • Przekazywanie obiektu BLOB do usługi Azure StorageUpload a blob to Azure Storage
  • Wyświetl listę wszystkich obiektów BLOB w kontenerzeList all of the blobs in a container
  • Pobieranie obiektu BLOB na komputer lokalnyDownload the blob to your local computer
  • Usuwanie konteneraDelete a container

Dodatkowe zasoby:Additional resources:

Uwaga

Funkcje opisane w tym artykule są teraz dostępne dla kont, które mają hierarchiczną przestrzeń nazw.The features described in this article are now available to accounts that have a hierarchical namespace. Aby zapoznać się z ograniczeniami, zobacz funkcje magazynu obiektów BLOB dostępne w Azure Data Lake Storage Gen2 artykule.To review limitations, see the Blob storage features available in Azure Data Lake Storage Gen2 article.

Wymagania wstępnePrerequisites

KonfigurowanieSetting up

W tej sekcji omówiono przygotowanie projektu do pracy z biblioteką klienta usługi Azure Blob Storage V12 dla platformy .NET.This section walks you through preparing a project to work with the Azure Blob storage client library v12 for .NET.

Tworzenie projektuCreate the project

Utwórz aplikację platformy .NET Core o nazwie BlobQuickstartV12.Create a .NET Core application named BlobQuickstartV12.

  1. W oknie konsoli (na przykład cmd, PowerShell lub bash) Użyj dotnet new polecenia, aby utworzyć nową aplikację konsolową o nazwie BlobQuickstartV12.In a console window (such as cmd, PowerShell, or Bash), use the dotnet new command to create a new console app with the name BlobQuickstartV12. To polecenie tworzy prosty projekt C# "Hello world" z pojedynczym plikiem źródłowym: program.cs.This command creates a simple "Hello World" C# project with a single source file: Program.cs.

    dotnet new console -n BlobQuickstartV12
    
  2. Przejdź do nowo utworzonego katalogu BlobQuickstartV12 .Switch to the newly created BlobQuickstartV12 directory.

    cd BlobQuickstartV12
    
  3. Na stronie katalogu BlobQuickstartV12 Utwórz inny katalog o nazwie dane.In side the BlobQuickstartV12 directory, create another directory called data. Jest to miejsce, w którym są tworzone i przechowywane pliki danych obiektów BLOB.This is where the blob data files will be created and stored.

    mkdir data
    

Zainstaluj pakietInstall the package

Mimo że w katalogu aplikacji, zainstaluj bibliotekę klienta usługi Azure Blob Storage dla platformy .NET za pomocą dotnet add package polecenia.While still in the application directory, install the Azure Blob storage client library for .NET package by using the dotnet add package command.

dotnet add package Azure.Storage.Blobs

Konfigurowanie struktury aplikacjiSet up the app framework

Z katalogu projektu:From the project directory:

  1. Otwórz plik program.cs w edytorzeOpen the Program.cs file in your editor
  2. Usuń Console.WriteLine("Hello World!"); instrukcjęRemove the Console.WriteLine("Hello World!"); statement
  3. Dodaj using dyrektywyAdd using directives
  4. Aktualizowanie Main deklaracji metody do obsługi kodu asynchronicznegoUpdate the Main method declaration to support async code

Oto kod:Here's the code:

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 PortalCopy your credentials from the Azure portal

Gdy aplikacja Przykładowa wysyła żądanie do usługi Azure Storage, musi mieć autoryzację.When the sample application makes a request to Azure Storage, it must be authorized. Aby autoryzować żądanie, Dodaj poświadczenia konta magazynu do aplikacji jako parametry połączenia.To authorize a request, add your storage account credentials to the application as a connection string. Wyświetl poświadczenia konta magazynu, wykonując następujące czynności:View your storage account credentials by following these steps:

  1. Zaloguj się w witrynie Azure Portal.Sign in to the Azure portal.

  2. Odszukaj konto magazynu.Locate your storage account.

  3. W sekcji Ustawienia omówienia kont magazynu wybierz pozycję Klucze dostępu.In the Settings section of the storage account overview, select Access keys. W tym miejscu możesz przeglądać klucze dostępu do konta oraz pełne parametry połączenia dla każdego klucza.Here, you can view your account access keys and the complete connection string for each key.

  4. Znajdź wartość Parametry połączenia w obszarze key1 i wybierz przycisk Kopiuj, aby skopiować parametry połączenia.Find the Connection string value under key1, and select the Copy button to copy the connection string. W następnym kroku dodasz wartość parametrów połączenia do zmiennej środowiskowej.You will add the connection string value to an environment variable in the next step.

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

Konfigurowanie parametrów połączenia magazynuConfigure your storage connection string

Po skopiowaniu parametrów połączenia zapisz je w nowej zmiennej środowiskowej na komputerze, na którym uruchomiona jest aplikacja.After you have copied your connection string, write it to a new environment variable on the local machine running the application. Aby ustawić zmienną środowiskową, otwórz okno konsoli i postępuj zgodnie z instrukcjami dla systemu operacyjnego.To set the environment variable, open a console window, and follow the instructions for your operating system. Zamień <yourconnectionstring> na rzeczywiste parametry połączenia.Replace <yourconnectionstring> with your actual connection string.

WindowsWindows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

Po dodaniu zmiennej środowiskowej w systemie Windows należy uruchomić nowe wystąpienie okna polecenia.After you add the environment variable in Windows, you must start a new instance of the command window.

LinuxLinux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOSmacOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Uruchom ponownie programyRestart programs

Po dodaniu zmiennej środowiskowej Uruchom ponownie wszystkie uruchomione programy, które będą wymagały odczytania zmiennej środowiskowej.After you add the environment variable, restart any running programs that will need to read the environment variable. Na przykład przed kontynuowaniem Uruchom ponownie środowisko programistyczne lub Edytor.For example, restart your development environment or editor before continuing.

Model obiektówObject model

Usługa Azure Blob Storage jest zoptymalizowana pod kątem przechowywania dużych ilości danych bez struktury.Azure Blob storage is optimized for storing massive amounts of unstructured data. Dane bez struktury są danymi, które nie są zgodne z żadnym modelem lub definicją danych, jak na przykład dane tekstowe lub binarne.Unstructured data is data that does not adhere to a particular data model or definition, such as text or binary data. Magazyn obiektów blob oferuje trzy typy zasobów:Blob storage offers three types of resources:

  • Konto magazynuThe storage account
  • Kontener na koncie magazynuA container in the storage account
  • Obiekt BLOB w kontenerzeA blob in the container

Na poniższym diagramie przedstawiono relacje między tymi zasobami.The following diagram shows the relationship between these resources.

Diagram architektury magazynu obiektów blob

Użyj następujących klas platformy .NET do korzystania z tych zasobów:Use the following .NET classes to interact with these resources:

  • BlobServiceClient: BlobServiceClient Klasa umożliwia manipulowanie zasobami usługi Azure Storage i kontenerami obiektów BLOB.BlobServiceClient: The BlobServiceClient class allows you to manipulate Azure Storage resources and blob containers.
  • BlobContainerClient: BlobContainerClient Klasa umożliwia manipulowanie kontenerami usługi Azure Storage i ich obiektami BLOB.BlobContainerClient: The BlobContainerClient class allows you to manipulate Azure Storage containers and their blobs.
  • BlobClient: BlobClient Klasa umożliwia manipulowanie obiektami BLOB usługi Azure Storage.BlobClient: The BlobClient class allows you to manipulate Azure Storage blobs.
  • BlobDownloadInfo: BlobDownloadInfo Klasa reprezentuje właściwości i zawartość zwróconą przez pobranie obiektu BLOB.BlobDownloadInfo: The BlobDownloadInfo class represents the properties and content returned from downloading a blob.

Przykłady koduCode examples

Te przykładowe fragmenty kodu pokazują, jak wykonać następujące czynności z biblioteką klienta usługi Azure Blob Storage dla platformy .NET:These example code snippets show you how to perform the following with the Azure Blob storage client library for .NET:

Pobieranie parametrów połączeniaGet the connection string

Poniższy kod pobiera parametry połączenia dla konta magazynu ze zmiennej środowiskowej utworzonej w sekcji Konfigurowanie parametrów połączenia magazynu .The code below retrieves the connection string for the storage account from the environment variable created in the Configure your storage connection string section.

Dodaj ten kod wewnątrz Main metody:Add this code inside the Main method:

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 konteneraCreate a container

Określ nazwę nowego kontenera.Decide on a name for the new container. Poniższy kod dołącza wartość identyfikatora GUID do nazwy kontenera, aby upewnić się, że jest ona unikatowa.The code below appends a GUID value to the container name to ensure that it is unique.

Ważne

Nazwy kontenerów muszą być zapisane małymi literami.Container names must be lowercase. 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.For more information about naming containers and blobs, see Naming and Referencing Containers, Blobs, and Metadata.

Utwórz wystąpienie klasy BlobServiceClient .Create an instance of the BlobServiceClient class. Następnie Wywołaj metodę CreateBlobContainerAsync , aby utworzyć kontener na koncie magazynu.Then, call the CreateBlobContainerAsync method to create the container in your storage account.

Dodaj ten kod na końcu Main metody:Add this code to the end of the Main method:

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

Przekazywanie obiektów BLOB do konteneraUpload blobs to a container

Następujący fragment kodu:The following code snippet:

  1. Tworzy plik tekstowy w lokalnym katalogu danych .Creates a text file in the local data directory.
  2. Pobiera odwołanie do obiektu BlobClient przez wywołanie metody GetBlobClient kontenera z sekcji Create a Container .Gets a reference to a BlobClient object by calling the GetBlobClient method on the container from the Create a container section.
  3. Przekazuje lokalny plik tekstowy do obiektu BLOB, wywołując metodę UploadAsync .Uploads the local text file to the blob by calling the UploadAsync method. Jeśli obiekt blob nie istnieje, zostanie utworzony przez metodę. W przeciwnym razie zostanie zastąpiony.This method creates the blob if it doesn't already exist, and overwrites it if it does.

Dodaj ten kod na końcu Main metody:Add this code to the end of the Main method:

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

// Open the file and upload its data
using FileStream uploadFileStream = File.OpenRead(localFilePath);
await blobClient.UploadAsync(uploadFileStream, true);
uploadFileStream.Close();

Wyświetlanie listy obiektów blob w kontenerzeList the blobs in a container

Utwórz listę obiektów BLOB w kontenerze, wywołując metodę GetBlobsAsync .List the blobs in the container by calling the GetBlobsAsync method. W takim przypadku tylko jeden obiekt BLOB został dodany do kontenera, więc operacja tworzenia listy zwraca tylko jeden obiekt BLOB.In this case, only one blob has been added to the container, so the listing operation returns just that one blob.

Dodaj ten kod na końcu Main metody:Add this code to the end of the Main method:

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 blobDownload blobs

Pobierz utworzony wcześniej obiekt BLOB, wywołując metodę DownloadAsync .Download the previously created blob by calling the DownloadAsync method. Przykładowy kod dodaje sufiks "pobrane" do nazwy pliku, aby można było zobaczyć oba pliki w lokalnym systemie plików.The example code adds a suffix of "DOWNLOADED" to the file name so that you can see both files in local file system.

Dodaj ten kod na końcu Main metody:Add this code to the end of the Main method:

// 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
BlobDownloadInfo download = await blobClient.DownloadAsync();

using (FileStream downloadFileStream = File.OpenWrite(downloadFilePath))
{
    await download.Content.CopyToAsync(downloadFileStream);
    downloadFileStream.Close();
}

Usuwanie konteneraDelete a container

Poniższy kod czyści zasoby utworzone przez aplikację przez usunięcie całego kontenera przy użyciu DeleteAsync.The following code cleans up the resources the app created by deleting the entire container by using DeleteAsync. Powoduje również usunięcie plików lokalnych utworzonych przez aplikację.It also deletes the local files created by the app.

Aplikacja wstrzymuje się do wprowadzania danych przez użytkownika Console.ReadLine , wywołując przed usunięciem obiektu BLOB, kontenera i plików lokalnych.The app pauses for user input by calling Console.ReadLine before it deletes the blob, container, and local files. Jest to dobry szansa, aby sprawdzić, czy zasoby zostały prawidłowo utworzone, zanim zostaną usunięte.This is a good chance to verify that the resources were actually created correctly, before they are deleted.

Dodaj ten kod na końcu Main metody:Add this code to the end of the Main method:

// 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 koduRun the code

Ta aplikacja tworzy plik testowy w lokalnym folderze danych i przekazuje go do magazynu obiektów BLOB.This app creates a test file in your local data folder and uploads it to Blob storage. Przykład następnie wyświetla listę obiektów BLOB w kontenerze i pobiera plik z nową nazwą, aby można było porównać stare i nowe pliki.The example then lists the blobs in the container and downloads the file with a new name so that you can compare the old and new files.

Przejdź do katalogu aplikacji, a następnie Skompiluj i uruchom aplikację.Navigate to your application directory, then build and run the application.

dotnet build
dotnet run

Dane wyjściowe aplikacji są podobne do następujących:The output of the app is similar to the following example:

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.Before you begin the clean up process, check your data folder for the two files. Możesz je otworzyć i sprawdzić, czy są identyczne.You can open them and observe that they are identical.

Po zweryfikowaniu plików naciśnij klawisz Enter , aby usunąć pliki testowe i zakończyć demonstrację.After you've verified the files, press the Enter key to delete the test files and finish the demo.

Następne krokiNext steps

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.In this quickstart, you learned how to upload, download, and list blobs using .NET.

Aby wyświetlić przykładowe aplikacje dla magazynu obiektów blob, przejdź do:To see Blob storage sample apps, continue to: