为什么我的Azure blob存储容器中存在重复的文件夹?

时间:2015-12-29 15:31:53

标签: azure azure-storage azure-storage-blobs

我知道Azure blob存储不使用实际的文件夹结构,但无法想出更好的方法来描述它。

我们看到的问题是打开Server Explorer(在Visual Studio中)浏览我们的blob存储容器。我们按文件夹分隔客户端资源和数据,因此在这种情况下,我们有一个标题为productdata/Client_5/testimage.jpg的blob。

问题是,在检查我们的blob存储时,此Client_5文件夹会出现两次。到目前为止,我已经仔细检查了两个文件夹中没有奇怪的特殊字符,并且双重检查区分大小写。除了实际内容外,这两条路径完全相同。我们的应用程序对此没有任何问题,因为路径仍然与它试图获得的资源完全相同。 (例如,由于文件夹的名称完全相同,https://myazureaccount.blob.core.windows.net/productdata/Client_5/image.jpg仍然将我们带到了我们需要的位置。)当我们使用Server Explorer在Azure上查看我们的blob时,这只是一种痛苦,因为我们有两个文件夹位置要检查。这很可能也是Visual Studio服务器资源管理器中的一个错误。

如果有其他人遇到此问题,我们将不胜感激。在线搜索时我无法找到关于该主题的任何内容,但我想在此处发布问题以供参考。另外,我很快就会联系Azure支持,看看他们是否可以对这些内容有所了解,并会在稍后发布我从中获得的信息。

3 个答案:

答案 0 :(得分:3)

blob存储确实没有文件夹的概念,但建立在它顶部的API确实如此。我在其他工具中也看到了完全相同或类似的问题:Microsoft Azure存储资源管理器甚至Azure门户。当我执行时,我试图深入了解:

CloudBlobContainer.ListBlobs(null, useFlatBlobListing: false)

它还返回了重复的目录。确切地说,它返回了列表,其中包含CloudBlobDirectory个具有相同Prefix的实例。听起来像个臭虫。现在,如果一个工具使用这种方法来获取目录列表,它将失败。如果该工具使用平面列表并在其逻辑中构建文件夹的结构,那么应该没问题。

很难说这种行为的原因是什么。在我的情况下,blob存储中的文件是由Azure Data Factory活动复制的并发选项,但我不确定它是否是规则。

在我的案例中,BTW Microsoft Azure Storage Explorer只显示了一些文件夹的子集,这比显示重复的目录要差得多,所以我切换到上面提到的Azure Explorer,值得推荐。

答案 1 :(得分:0)

Azure blob存储没有文件夹的概念,只有容器,你可以模拟文件夹设置要保存的博客名称,如文件夹/ img.png ' ,但文件夹/ 是blob名称的一部分。

此外,我曾使用过Storage Explorer,请尝试使用:http://azurestorageexplorer.codeplex.com/releases/view/125870

答案 2 :(得分:0)

我遇到了一个问题,即“文件夹”名称看起来完全相同,但仔细检查后发现其中有一个尾随空格。

因为文件夹在 blob 存储中并不真正存在并且空格是有效值,所以名称中可能有尾随或前导空格。