Azureの保管場所にサブコンテナーを作成するにはどうすればよいですか?
5 に答える
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に感謝します]
BLOBストレージについて言及していますか?その場合、階層は単にStorageAccount / Container/BlobNameです。ネストされたコンテナはありません。
そうは言っても、BLOB名にスラッシュを使用して、URI内のネストされたコンテナーをシミュレートできます。名前の詳細については、MSDNのこの記事を参照してください。
私は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フィールドを編集しました。必要に応じて編集できます。スペルミスがあった可能性があります:/申し訳ありませんが、それは私の推奨事項にすぎません。
Azureポータルからファイルをアップロードする場合:コンテナにサブフォルダを作成するには、ファイルのアップロード中に[詳細オプション]に移動して[フォルダにアップロード]を選択すると、コンテナに新しいフォルダが作成され、ファイルがにアップロードされます。それ。
サンプルコード
string myfolder = "<folderName>";
string myfilename = "<fileName>";
string fileName = String.Format("{0}/{1}.csv", myfolder, myfilename);
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);