Bibliothèque cliente d’objets blob de stockage Azure pour .NET - version 12.19.0

Version du serveur : 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 et 2019-02-02

Le stockage Blob Azure est la solution de stockage d’objet de Microsoft pour le cloud. Stockage Blob est optimisé pour le stockage d’immenses quantités de données non structurées. 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.

| Code sourcePackage (NuGet) | Documentation de référence sur les | APIDocumentation | sur l’API RESTDocumentation produit

Prise en main

Installer le package

Installez la bibliothèque cliente d’objets blob de stockage Azure pour .NET avec NuGet :

dotnet add package Azure.Storage.Blobs

Prérequis

Vous avez besoin d’un abonnement Azure et d’un compte de stockage pour utiliser ce package.

Pour créer un compte de stockage, vous pouvez utiliser le portail Azure, Azure PowerShell ou Azure CLI. Voici un exemple utilisant Azure CLI :

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

Authentifier le client

Pour interagir avec le service Stockage Blob Azure, vous devez créer un instance de la classe BlobServiceClient. La bibliothèque d’identités Azure facilite l’ajout de la prise en charge d’Azure Active Directory pour l’authentification des clients du Kit de développement logiciel (SDK) Azure auprès de leurs services Azure correspondants.

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

Pour en savoir plus sur l’activation d’Azure Active Directory pour l’authentification avec Stockage Azure, consultez notre documentation et nos exemples.

Concepts clés

Le stockage Blob est conçu pour :

  • Mise à disposition d’images ou de documents directement dans un navigateur.
  • Stockage de fichiers pour un accès distribué.
  • Diffusion en continu de vidéo et d’audio.
  • Écriture dans les fichiers journaux.
  • Stockage de données pour la sauvegarde et la restauration, la récupération d’urgence et l’archivage.
  • Stockage des données pour l’analyse par un service local ou hébergé par Azure.

Le stockage Blob offre trois types de ressources :

  • Compte de stockage utilisé via BlobServiceClient
  • Un conteneur dans le compte de stockage utilisé via BlobContainerClient
  • Objet blob dans un conteneur utilisé via BlobClient

Découvrez-en plus sur les options d’authentification (notamment les chaînes de connexion, la clé partagée, les signatures de clé partagée, Active Directory et l’accès public anonyme)dans nos exemples.

Sécurité des threads

Nous garantissons que toutes les méthodes de instance client sont thread-safe et indépendantes les unes des autres (instructions). Cela garantit que la recommandation de réutilisation des instances clientes est toujours sécurisée, même entre les threads.

Concepts supplémentaires

Options | du clientAccès à la réponse | Opérations | de longue duréeGestion des défaillances | Diagnostics | Moqueur | Durée de vie du client

Exemples

Chargement d’un objet 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);

Téléchargement d’un objet 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);

Énumération d’objets 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);
}

API asynchrones

Nous prenons entièrement en charge les API synchrones et asynchrones.

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

Dépannage

Toutes les opérations du service Blob lèvent une exception RequestFailedException en cas d’échec avec des s utilesErrorCode. La plupart de ces erreurs peuvent être récupérées.

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

Étapes suivantes

Prise en main de nos exemples d’objets blob :

  1. Hello World : charger, télécharger et répertorier des objets blob (ou de façon asynchrone)
  2. Authentification : Authentifiez-vous avec des chaînes de connexion, un accès public, des clés partagées, des signatures d’accès partagé et Azure Active Directory.

Contribution

Consultez la CONTRIBUTING.md stockage pour plus d’informations sur la création, le test et la contribution à cette bibliothèque.

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez cla.microsoft.com.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.

Impressions