如何在天蓝色的存储位置创建子容器?
您指的是 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 存储与创建这个目录:
因此,在你的建议之后,我尝试上传我的内容与工具,这是 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 文件。
在传送门上会是这个样子