web-dev-qa-db-ja.com

Azureストレージの場所にサブコンテナーを作成する方法

Azureストレージの場所にサブコンテナーを作成する方法。

お知らせください

60
subramani

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

たとえば、「content」という名前のコンテナを作成し、そのコンテナに次の名前のブロブを作成できます。

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は、「コンテンツ」コンテナに対するフラットリストであることに注意してください。つまり、従来の区切り文字として「/」を使用すると、これらを階層的に横断する機能が提供されます。

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。これらは、おそらくあなたが探している走査機能を提供します。

これは、始めるのに役立つはずです。これで質問に答えられない場合はお知らせください。

[ Neil Mackenzie に感謝します]

108
tobint

BLOBストレージを参照していますか?その場合、階層は単にStorageAccount/Container/BlobNameです。ネストされたコンテナはありません。

そうは言っても、ブロブ名にスラッシュを使用して、URIのネストされたコンテナーをシミュレートできます。命名の詳細については、 MSDNのこの記事 をご覧ください。

10
David Makogon

私は答えをtobintに同意し、このディレクトリを作成してゲームhtmlをAzure Storageにアップロードするのと同じ方法が必要なので、この状況を追加したいと思います:

  • Games\Beautyshop\index.html
  • Games\Beautyshop\assets\Apple.png
  • Games\Beautyshop\assets\aromas.png
  • Games\Beautyshop\customfont.css
  • Games\Beautyshop\jquery.js

あなたの推奨の後、Azure Storage Explorerであるツールでコンテンツをアップロードしようとしましたが、このURLでツールとソースコードをダウンロードできます: Azure Storage Explorer

まず、ツールを使用してアップロードしようとしましたが、必要がないため、階層ディレクトリのアップロードはできません: blobコンテナにサブディレクトリを作成する方法

最後に、Azure Storage Explorerのソースコードをデバッグし、StorageAccountViewModel.csファイルのBackground_UploadBlobsメソッドとUploadFileListフィールドを編集しました。あなたはそれをあなたが望むものを編集することができます。私はスペルミスをしたかもしれません:/すみませんが、それは私のお勧めです。

5
Serkan Yılmaz