如何在天蓝色的存储位置创建子集装箱

如何在天蓝色的存储位置创建子容器?

39980 次浏览

您指的是 blob 存储吗? 如果是的话,层次结构只是 StorageAccount/Container/BlobName。没有嵌套的容器。

尽管如此,您可以在 blob 名称中使用斜杠来模拟 URI 中的嵌套容器。有关命名细节,请参见 这篇文章在 MSDN 上

WindowsAzure 没有提供层次结构容器的概念,但是它提供了一种通过约定和 API 遍历层次结构的机制。所有容器都存储在同一级别。通过使用 blob 名称的命名约定,您可以获得类似的功能。

例如,您可以创建一个名为“ content”的容器,并在该容器中创建具有以下名称的 blobs:

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

注意 ,这些 blobs 是针对您的“内容”容器的平面列表。也就是说,使用“/”作为传统的分隔符,为您提供了以层次结构方式遍历这些分隔符的功能。

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

注意 使用 获取 BlobDirectoryReference获取子目录方法和 CloudBlobDirectory类型代替 CloudBlobContainer。它们提供了您可能需要的遍历功能。

这应该能帮助你开始,如果这还不能回答你的问题,请告诉我:

[感谢 尼尔 · 麦肯齐的灵感]

我同意双重回答,我想补充一些东西这种情况,因为我也 我需要同样的方式上传我的游戏 html 到 Azure 存储与创建这个目录:

  • 游戏美容店
  • Games Beautyshop 资产
  • Games Beautyshop 资产 aromas.png
  • Games Beautyshop customfont.css
  • 游戏美容店 jquery.js

因此,在你的建议之后,我尝试上传我的内容与工具,这是 Azure 存储浏览器,你可以下载工具和源代码与这个网址: Azure 存储浏览器

首先,我试图通过工具上传,但它不允许分层目录上传,因为你不需要: 如何在 blob 容器中创建子目录

最后,我调试了 Azure Storage Explorer 的源代码,并在 storageaccountviewmodel.cs 文件中编辑了网页背景上传文件方法和上传文件列表字段。你可以编辑你想要的。我可能有拼写错误:/我很抱歉,但这只是我的建议。

样本代码

string myfolder = "<folderName>";
string myfilename = "<fileName>";
string fileName = String.Format("{0}/{1}.csv", myfolder, myfilename);
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);

如果你想从 Azure 门户网站上传文件: 要在容器中创建子文件夹,在上传文件时,可以进入“高级选项”,选择“上传到文件夹”,这将在容器中创建一个新文件夹,并将文件上传到该文件夹。

科特林密码

    val blobClient = blobContainerClient.getBlobClient("$subDirNameTimeStamp/$fileName$extension");

这将创建以 TimeStamp 作为名称的目录,其中将包含 Blob File。注意在上面的代码中使用了斜杠(/) ,它将通过创建名为前一个斜杠字符串的文件夹来嵌套 blob 文件。

在传送门上会是这个样子 enter image description here