74

Azureの保管場所にサブコンテナーを作成するにはどうすればよいですか?

4

5 に答える 5

126

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

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")

CloudBlobContainerの代わりにGetBlobDirectoryReferenceメソッドとGetSubDirectoryメソッド、およびCloudBlobDirectoryタイプを使用していることに注意してください。これらは、探している可能性のあるトラバーサル機能を提供します。

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

[インスピレーションを与えてくれたNeilMackenzieに感謝します]

于 2010-07-06T19:01:28.513 に答える
14

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

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

于 2010-07-06T17:16:23.643 に答える
6

私はtobintの回答に同意し、この状況で何かを追加したいと思います。これは、このディレクトリを作成して、ゲームのhtmlをAzureStorageにアップロードするのと同じ方法が必要だからです。

  • 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フィールドを編集しました。必要に応じて編集できます。スペルミスがあった可能性があります:/申し訳ありませんが、それは私の推奨事項にすぎません。

于 2013-01-15T08:23:24.193 に答える
4

Azureポータルからファイルをアップロードする場合:コンテナにサブフォルダを作成するには、ファイルのアップロード中に[詳細オプション]に移動して[フォルダにアップロード]を選択すると、コンテナに新しいフォルダが作成され、ファイルがにアップロードされます。それ。

于 2019-09-05T05:07:40.013 に答える
-1

サンプルコード

string myfolder = "<folderName>";
string myfilename = "<fileName>";
string fileName = String.Format("{0}/{1}.csv", myfolder, myfilename);
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);
于 2017-08-08T07:02:47.100 に答える