<p>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.</p>
<p>Par exemple, vous pouvez créer un conteneur nommé “content” et créer des blobs avec les noms suivants dans ce conteneur :</p>
<pre><code class="lang-auto">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
</code></pre>
<p><strong>Remarque</strong> : 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.</p>
<pre><code class="lang-auto">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();
}
</code></pre>
<p>Vous pouvez ensuite appeler ceci comme suit :</p>
<pre><code class="lang-auto">GetDirectoryList("content/blue", "images")
</code></pre>
<p><strong>Remarque</strong> : notez l’utilisation des méthodes <strong>GetBlobDirectoryReference</strong> et <strong>GetSubDirectory</strong> ainsi que du type <strong>CloudBlobDirectory</strong> au lieu de <strong>CloudBlobContainer</strong>. Ceux-ci fournissent la fonctionnalité de parcours que vous recherchez probablement.</p>
<p>Cela devrait vous aider à démarrer. Dites-moi si cela ne répond pas à votre question :</p>
<p>[ Merci à <a href="http://nmackenzie.spaces.live.com/blog/cns!B863FF075995D18A!527.entry">Neil Mackenzie</a> pour l’inspiration ]</p>