Comment créer un sous-conteneur dans un emplacement de stockage Azure

Comment créer un sous-conteneur dans un emplacement de stockage Azure


Source : Stack Overflow [azure]

Windows Azure ne fournit pas le concept de conteneurs hiérarchiques, mais il fournit un mécanisme pour parcourir la hiérarchie par convention et par API. Tous les conteneurs sont stockés au même niveau. Vous pouvez obtenir une fonctionnalité similaire en utilisant des conventions de nommage pour vos noms de blobs.

Par exemple, vous pouvez créer un conteneur nommé “content” et créer des blobs avec les noms suivants dans ce conteneur :

content/blue/images/logo.jpg
content/blue/images/icon-start.jpg
content/blue/images/icon-stop.jpg

content/red/images/logo.jpg
content/red/images/icon-start.jpg
content/red/images/icon-stop.jpg

Remarque : ces blobs sont une liste plate dans votre conteneur “content”. Cela dit, l’utilisation du “/” comme délimiteur conventionnel vous fournit la fonctionnalité de les parcourir de manière hiérarchique.

protected IEnumerable<IListBlobItem>
          GetDirectoryList(string directoryName, string subDirectoryName)
{
    CloudStorageAccount account =
        CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
    CloudBlobClient client =
        account.CreateCloudBlobClient();
    CloudBlobDirectory directory =
        client.GetBlobDirectoryReference(directoryName);
    CloudBlobDirectory subDirectory =
        directory.GetSubdirectory(subDirectoryName);

    return subDirectory.ListBlobs();
}

Vous pouvez ensuite appeler ceci comme suit :

GetDirectoryList("content/blue", "images")

Remarque : notez l’utilisation des méthodes GetBlobDirectoryReference et GetSubDirectory ainsi que du type CloudBlobDirectory au lieu de CloudBlobContainer. Ceux-ci fournissent la fonctionnalité de parcours que vous recherchez probablement.

Cela devrait vous aider à démarrer. Dites-moi si cela ne répond pas à votre question :

[ Merci à Neil Mackenzie pour l’inspiration ]