Démarrage rapide : Bibliothèque cliente Stockage Blob Azure v12 pour .NETQuickstart: Azure Blob storage client library v12 for .NET

Bien démarrer avec la bibliothèque de client Stockage Blob Azure v12 pour .NET.Get started with the Azure Blob storage client library v12 for .NET. Le stockage Blob Azure est la solution de stockage d’objet de Microsoft pour le cloud.Azure Blob storage is Microsoft's object storage solution for the cloud. Suivez les étapes pour installer le package et essayer l’exemple de code pour les tâches de base.Follow steps to install the package and try out example code for basic tasks. Le stockage Blob est optimisé pour stocker de grandes quantités de données non structurées.Blob storage is optimized for storing massive amounts of unstructured data.

Notes

Pour commencer à utiliser la version précédente du kit de développement logiciel (SDK), consultez Démarrage rapide : Bibliothèque cliente Stockage Blob Azure pour .NET.To get started with the previous SDK version, see Quickstart: Azure Blob storage client library for .NET.

Utilisez la bibliothèque cliente Stockage Blob Azure v12 pour .NET afin de :Use the Azure Blob storage client library v12 for .NET to:

  • Créez un conteneur.Create a container
  • Charger un blob dans le stockage AzureUpload a blob to Azure Storage
  • Lister tous les objets blob d’un conteneurList all of the blobs in a container
  • Télécharger l’objet blob sur votre ordinateur localDownload the blob to your local computer
  • Supprimer un conteneurDelete a container

Documentation de référence sur l’API | Code source de la bibliothèque | Package (NuGet) | ExemplesAPI reference documentation | Library source code | Package (NuGet) | Samples

Notes

Les fonctionnalités décrites dans cet article sont désormais disponibles pour les comptes dotés d'un espace de noms hiérarchique.The features described in this article are now available to accounts that have a hierarchical namespace. Pour en savoir plus sur les limitations, consultez l'article Problèmes connus avec Azure Data Lake Storage Gen2.To review limitations, see the Known issues with Azure Data Lake Storage Gen2 article.

PrérequisPrerequisites

ConfigurationSetting up

Cette section vous guide tout au long de la préparation d’un projet à utiliser avec la bibliothèque cliente Stockage Blob Azure v12 pour .NET.This section walks you through preparing a project to work with the Azure Blob storage client library v12 for .NET.

Créer le projetCreate the project

Créez une application .NET Core nommée BlobQuickstartV12.Create a .NET Core application named BlobQuickstartV12.

  1. Dans une fenêtre de console (par exemple cmd, PowerShell ou Bash), utilisez la commande dotnet new pour créer une application de console avec le nom 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. Cette commande crée un projet C# « Hello World » simple avec un seul fichier source : Program.cs.This command creates a simple "Hello World" C# project with a single source file: Program.cs.

    dotnet new console -n BlobQuickstartV12
    
  2. Basculez vers le répertoire BlobQuickstartV12 nouvellement créé.Switch to the newly created BlobQuickstartV12 directory.

    cd BlobQuickstartV12
    
  3. Dans le répertoire BlobQuickstartV12, créez un autre répertoire appelé data.In side the BlobQuickstartV12 directory, create another directory called data. C’est là que les fichiers de données d’objets Blob sont créés et stockés.This is where the blob data files will be created and stored.

    mkdir data
    

Installer le packageInstall the package

Alors que vous êtes toujours dans le répertoire de l’application, installez le package de la bibliothèque cliente Stockage Blob Azure pour .NET à l’aide de la commande dotnet add package.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

Configurer le framework d’applicationSet up the app framework

À partir du répertoire de projet :From the project directory:

  1. Ouvrez le fichier Program.cs dans votre éditeur.Open the Program.cs file in your editor
  2. Supprimez l'instruction Console.WriteLine("Hello World!");.Remove the Console.WriteLine("Hello World!"); statement
  3. Ajoutez des directives using.Add using directives
  4. Mettez à jour la déclaration de méthode Main pour prendre en charge le code asynchroneUpdate the Main method declaration to support async code

Voici le code :Here's the code:

using Azure.Storage;
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()
        {
        }
    }
}

Copier vos informations d’identification depuis le portail AzureCopy your credentials from the Azure portal

Lorsque l’exemple d’application effectue une requête auprès du stockage Azure, il doit être autorisé.When the sample application makes a request to Azure Storage, it must be authorized. Pour autoriser une demande, ajoutez les informations d’identification de votre compte de stockage à l’application sous la forme d’une chaîne de connexion.To authorize a request, add your storage account credentials to the application as a connection string. Affichez les informations d'identification de votre compte de stockage en suivant ces étapes :View your storage account credentials by following these steps:

  1. Connectez-vous au Portail Azure.Sign in to the Azure portal.

  2. Recherchez votre compte de stockage.Locate your storage account.

  3. Dans la section Paramètres de la présentation du compte de stockage, sélectionnez Clés d’accès.In the Settings section of the storage account overview, select Access keys. Vos clés d’accès au compte s’affichent, ainsi que la chaîne de connexion complète de chaque clé.Here, you can view your account access keys and the complete connection string for each key.

  4. Recherchez la valeur de Chaîne de connexion sous clé1, puis sélectionnez le bouton Copier pour copier la chaîne de connexion.Find the Connection string value under key1, and select the Copy button to copy the connection string. Vous allez ajouter la valeur de chaîne de connexion dans une variable d’environnement à l’étape suivante.You will add the connection string value to an environment variable in the next step.

    Capture d’écran montrant comment copier une chaîne de connexion à partir du portail Azure

Configurer votre chaîne de connexion de stockageConfigure your storage connection string

Après avoir copié votre chaîne de connexion, écrivez-la dans une variable d’environnement sur l’ordinateur local exécutant l’application.After you have copied your connection string, write it to a new environment variable on the local machine running the application. Pour définir la variable d’environnement, ouvrez une fenêtre de console et suivez les instructions pour votre système d’exploitation.To set the environment variable, open a console window, and follow the instructions for your operating system. Remplacez <yourconnectionstring> par votre chaîne de connexion.Replace <yourconnectionstring> with your actual connection string.

WindowsWindows

setx CONNECT_STR "<yourconnectionstring>"

Après avoir ajouté la variable d’environnement dans Windows, vous devez démarrer une nouvelle instance de la fenêtre de commande.After you add the environment variable in Windows, you must start a new instance of the command window.

LinuxLinux

export CONNECT_STR="<yourconnectionstring>"

macOSmacOS

export CONNECT_STR="<yourconnectionstring>"

Redémarrer des programmesRestart programs

Après avoir ajouté la variable d’environnement, redémarrez tous les programmes en cours d’exécution qui devront la lire.After you add the environment variable, restart any running programs that will need to read the environment variable. Par exemple, redémarrez votre environnement de développement ou éditeur avant de continuer.For example, restart your development environment or editor before continuing.

Modèle objetObject model

Le Stockage Blob Azure est optimisé pour stocker de grandes quantités de données non structurées.Azure Blob storage is optimized for storing massive amounts of unstructured data. Les données non structurées sont des données qui n’obéissent pas à un modèle ou une définition de données en particulier, comme des données texte ou binaires.Unstructured data is data that does not adhere to a particular data model or definition, such as text or binary data. Le stockage Blob offre trois types de ressources :Blob storage offers three types of resources:

  • Le compte de stockageThe storage account
  • Un conteneur dans le compte de stockage.A container in the storage account
  • Un blob dans le conteneurA blob in the container

Le diagramme suivant montre la relation entre ces ressources.The following diagram shows the relationship between these resources.

Diagramme de l’architecture du stockage Blob

Utilisez les classes .NET suivantes pour interagir avec ces ressources :Use the following .NET classes to interact with these resources:

  • BlobServiceClient : La classe BlobServiceClient vous permet de manipuler les ressources de stockage Azure et les conteneurs d’objets Blob.BlobServiceClient: The BlobServiceClient class allows you to manipulate Azure Storage resources and blob containers.
  • BlobContainerClient : La classe BlobContainerClient vous permet de manipuler des conteneurs Stockage Azure et leurs objets blob.BlobContainerClient: The BlobContainerClient class allows you to manipulate Azure Storage containers and their blobs.
  • BlobClient : La classe BlobClient vous permet de manipuler des objets Blob de stockage Azure.BlobClient: The BlobClient class allows you to manipulate Azure Storage blobs.
  • BlobDownloadInfo : La classe BlobDownloadInfo représente les propriétés et le contenu renvoyés par le téléchargement d’un objet Blob.BlobDownloadInfo: The BlobDownloadInfo class represents the properties and content returned from downloading a blob.

Exemples de codeCode examples

Ces exemples d’extraits de code vous montrent comment effectuer les opérations suivantes avec la bibliothèque cliente Stockage Blob Azure pour .NET :These example code snippets show you how to perform the following with the Azure Blob storage client library for .NET:

Obtenir la chaîne de connexionGet the connection string

Le code ci-dessous récupère la chaîne de connexion pour le compte de stockage à partir de la variable d’environnement créée dans la section Configurer votre chaîne de connexion de stockage.The code below retrieves the connection string for the storage account from the environment variable created in the Configure your storage connection string section.

Ajoutez ce code dans la méthode Main :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 CONNECT_STR. 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("CONNECT_STR");

Créez un conteneur.Create a container

Choisissez un nom pour le nouveau conteneur.Decide on a name for the new container. Le code ci-dessous ajoute une valeur GUID au nom du conteneur pour s’assurer qu’il est unique.The code below appends a GUID value to the container name to ensure that it is unique.

Important

Les noms de conteneurs doivent être en minuscules.Container names must be lowercase. Pour plus d’informations sur l’affectation de noms aux conteneurs et objets blob, consultez Affectation de noms et références aux conteneurs, objets blob et métadonnées.For more information about naming containers and blobs, see Naming and Referencing Containers, Blobs, and Metadata.

Création d’une instance de la classe BlobServiceClient.Create an instance of the BlobServiceClient class. Ensuite, appelez la méthode CreateBlobContainerAsync pour créer le conteneur dans votre compte de stockage.Then, call the CreateBlobContainerAsync method to create the container in your storage account.

Ajoutez ce code à la fin de la méthode Main :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);

Charger des objets blob sur un conteneurUpload blobs to a container

L’extrait de code suivant :The following code snippet:

  1. Crée un fichier texte dans le répertoire local data.Creates a text file in the local data directory.
  2. Obtient une référence à un objet BlobClient en appelant la méthode GetBlobClient sur le conteneur à partir de la section Créer un conteneur.Gets a reference to a BlobClient object by calling the GetBlobClient method on the container from the Create a container section.
  3. Charge le fichier texte local dans l’objet Blob en appelant la méthode UploadAsync.Uploads the local text file to the blob by calling the UploadAsync method. Cette méthode crée l’objet blob s’il n’existe pas déjà, et le remplace s’il existe.This method creates the blob if it doesn't already exist, and overwrites it if it does.

Ajoutez ce code à la fin de la méthode Main :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);
uploadFileStream.Close();

Créer la liste des objets blob d’un conteneurList the blobs in a container

Répertoriez les objets Blob dans le conteneur en appelant la méthode GetBlobsAsync.List the blobs in the container by calling the GetBlobsAsync method. Dans ce cas, un seul objet blob a été ajouté au conteneur. Il n’y a donc qu’un objet blob répertorié.In this case, only one blob has been added to the container, so the listing operation returns just that one blob.

Ajoutez ce code à la fin de la méthode Main :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);
}

Télécharger des objets blobDownload blobs

Téléchargez l’objet Blob créé précédemment en appelant la méthode DownloadAsync.Download the previously created blob by calling the DownloadAsync method. L’exemple de code ajoute le suffixe « DOWNLOADED » au nom de fichier afin que vous puissiez voir les deux fichiers dans votre système de fichiers local.The example code adds a suffix of "DOWNLOADED" to the file name so that you can see both files in local file system.

Ajoutez ce code à la fin de la méthode Main :Add this code to the end of the Main method:

// Download the blob to a local file
// Append the string "DOWNLOAD" before the .txt extension so you can see both files in MyDocuments
string downloadFilePath = localFilePath.Replace(".txt", "DOWNLOAD.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();

Supprimer un conteneurDelete a container

Le code suivant nettoie les ressources créées par l’application en supprimant l’ensemble du conteneur avec DeleteAsync.The following code cleans up the resources the app created by deleting the entire container by using DeleteAsync. Il supprime également les fichiers locaux créés par l’application.It also deletes the local files created by the app.

L’application s’interrompt pour une entrée de l’utilisateur en appelant Console.ReadLine avant de supprimer l’objet blob, le conteneur et les fichiers locaux.The app pauses for user input by calling Console.ReadLine before it deletes the blob, container, and local files. C’est l’occasion de vérifier que les ressources ont bien été créées avant d’être supprimées.This is a good chance to verify that the resources were actually created correctly, before they are deleted.

Ajoutez ce code à la fin de la méthode Main :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");

Exécuter le codeRun the code

Cette application crée un fichier de test dans votre dossier local MyDocuments et le charge sur le Stockage Blob.This app creates a test file in your local MyDocuments folder and uploads it to Blob storage. L’exemple liste ensuite les objets blob du conteneur et télécharge le fichier avec un nouveau nom pour que vous puissiez comparer les deux fichiers.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.

Accédez au répertoire de l’application, puis générez et exécutez l’application.Navigate to your application directory, then build and run the application.

dotnet build
dotnet run

Le résultat de l’application ressemble à l’exemple suivant :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

Avant de commencer le processus de nettoyage, vérifiez les deux fichiers dans votre dossier MyDocuments.Before you begin the clean up process, check your MyDocuments folder for the two files. Vous pouvez les ouvrir et constater qu’ils sont identiques.You can open them and observe that they are identical.

Une fois les fichiers vérifiés, appuyez sur Entrée pour supprimer les fichiers de test et terminer la démonstration.After you've verified the files, press the Enter key to delete the test files and finish the demo.

Étapes suivantesNext steps

Dans ce démarrage rapide, vous avez appris à charger, télécharger et répertorier des objets blob avec .NET.In this quickstart, you learned how to upload, download, and list blobs using .NET.

Pour voir des exemples d’applications de stockage d’objets Blob, passez à :To see Blob storage sample apps, continue to: