Créer un conteneur blob avec .NET

Les objets BLOB dans le stockage Azure sont organisés en conteneurs. Avant de pouvoir télécharger un objet BLOB, vous devez d’abord créer un conteneur. Cet article explique comment créer des conteneurs à l’aide de la bibliothèque de client de Stockage Azure pour .NET.

Prérequis

  • Cet article suppose qu’un projet est déjà configuré pour fonctionner avec la bibliothèque de client Stockage Blob Azure pour .NET. Pour en savoir plus sur la configuration de votre projet, y compris l’installation du package, l’ajout de directives using et la création d’un objet client autorisé, consultez Bien démarrer avec Stockage Blob Azure et .NET.
  • Le mécanisme d’autorisation doit disposer des autorisations nécessaires à la création d’un conteneur d’objets blob. Pour plus d’informations, consultez les conseils d’autorisation pour l’opération d’API REST suivante :

À propos de la dénomination des conteneurs

Un nom de conteneur doit être un nom DNS valide, car il fait partie de l’URI unique utilisé pour adresser le conteneur ou ses objets BLOB. Suivez ces règles lorsque vous nommez un conteneur :

  • Les noms de conteneur doivent comprendre entre 3 et 63 caractères.
  • Les noms de conteneur doivent commencer par une lettre ou un chiffre, et peuvent comporter uniquement des lettres minuscules, des chiffres et des tirets (-).
  • Deux tirets consécutifs ne sont pas autorisés dans les noms de conteneurs.

L’URI d’une ressource de conteneur est mis en forme comme suit :

https://my-account-name.blob.core.windows.net/my-container-name

Créez un conteneur.

Pour créer un conteneur, utilisez l’une des méthodes suivantes de la classe BlobServiceClient :

Vous pouvez également créer un conteneur à l’aide de l’une des méthodes suivantes de la classe BlobContainerClient:

Ces méthodes lèvent une exception s’il existe un conteneur portant le même nom.

Les conteneurs sont créés immédiatement sous le compte de stockage. Il n’est pas possible d’imbriquer un conteneur sous un autre.

L’exemple suivant utilise un objet BlobServiceClient pour créer un conteneur de manière asynchrone :

//-------------------------------------------------
// Create a container
//-------------------------------------------------
private static async Task<BlobContainerClient> CreateSampleContainerAsync(BlobServiceClient blobServiceClient)
{
    // Name the sample container based on new GUID to ensure uniqueness.
    // The container name must be lowercase.
    string containerName = "container-" + Guid.NewGuid();

    try
    {
        // Create the container
        BlobContainerClient container = await blobServiceClient.CreateBlobContainerAsync(containerName);

        if (await container.ExistsAsync())
        {
            Console.WriteLine("Created container {0}", container.Name);
            return container;
        }
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine("HTTP error code {0}: {1}",
                            e.Status, e.ErrorCode);
        Console.WriteLine(e.Message);
    }

    return null;
}

Créer le conteneur racine

Un conteneur racine sert de conteneur par défaut pour votre compte de stockage. Chaque compte de stockage peut avoir un conteneur racine, qui doit être nommé $root. Le conteneur racine doit être créé ou supprimé de manière explicite.

Vous pouvez référencer un objet BLOB stocké dans le conteneur racine sans inclure le nom du conteneur racine. Le conteneur racine vous permet de référencer un objet BLOB au niveau supérieur de la hiérarchie du compte de stockage. Par exemple, vous pouvez référencer un blob qui réside dans le conteneur racine de la manière suivante :

https://myaccount.blob.core.windows.net/default.html

L’exemple suivant permet de créer un conteneur racine synchrone :

//-------------------------------------------------
// Create root container
//-------------------------------------------------
private static void CreateRootContainer(BlobServiceClient blobServiceClient)
{
    try
    {
        // Create the root container or handle the exception if it already exists
        BlobContainerClient container =  blobServiceClient.CreateBlobContainer("$root");

        if (container.Exists())
        {
            Console.WriteLine("Created root container.");
        }
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine("HTTP error code {0}: {1}",
                            e.Status, e.ErrorCode);
        Console.WriteLine(e.Message);
    }
}

Ressources

Pour en savoir plus sur la création d’un conteneur à l’aide de la bibliothèque cliente Stockage Blob Azure pour .NET, consultez les ressources suivantes.

Opérations de l'API REST

Le Kit de développement logiciel (SDK) Azure pour .NET contient des bibliothèques qui s’appuient sur l’API REST Azure et vous permettant d’interagir avec des opérations de l’API REST par le biais de paradigmes .NET familiers. Les méthodes de bibliothèque cliente pour créer un conteneur utilisent l’opération d’API REST suivante :

Ressources de bibliothèque cliente