1. ホーム
  2. azure

azureストレージのロケーションにサブコンテナを作成する方法

2023-09-22 05:57:12

質問内容

azureストレージの場所にサブコンテナを作成するにはどうすればよいですか?

どのように解決するのですか?

Windows Azureは階層的なコンテナの概念を提供しませんが、規約とAPIによって階層を横断するメカニズムを提供します。すべてのコンテナは、同じレベルに格納されます。Blob名に命名規則を使用することで、同様の機能を得ることができます。

たとえば、"content"という名前のコンテナを作成し、そのコンテナ内に次のような名前のBlobを作成することができます。

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

注意 これらのblobはquot;content"コンテナに対してフラットリストであることに注意してください。とはいえ、従来の区切り文字として "/" を使用すると、階層的な方法でこれらをたどる機能が提供されます。

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

すると、次のように呼び出すことができます。

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

注意 の使用は GetBlobDirectoryReferenceの使用。 GetSubDirectory メソッドと CloudBlobDirectory 型の代わりに CloudBlobContainer . これらはあなたが探しているであろうトラバーサルの機能を提供します。

これはあなたが始めるのに役立つはずです。もしこれがあなたの質問の答えになっていなければ、教えてください。

[ ありがとうございます ニール・マッケンジー に感謝します。]