.NET Azure Blob存储:获取没有列出所有Blob

时间:2016-03-24 22:35:30

标签: c# azure azure-storage azure-sdk-.net azure-blob-storage

我有一个Azure云blob存储帐户&我需要列举其内容。该帐户拥有大量数据和使用ListBlobs枚举其所有内容需要很长时间才能完成。

对于云容器和目录,我希望能够枚举根级项目。对于容器,我假设这将枚举根级blob:

cloudBlobContainer.ListBlobs(
            String.Empty,
            false,
            BlobListingDetails.None,
            null,
            null))

有没有合理的方法来获取根级目录而不列出所有blob?我能想到的唯一方法就是荒谬:用一个blob前缀可能组合调用ListBlob。

2 个答案:

答案 0 :(得分:1)

Zachary,遗憾的是Azure Blob存储中没有“目录”这样的东西。对象层次结构如下:

  • 存储帐户(管理平面)
    • 存储容器[0..n](数据平面)
      • Blobs [0..n](数据平面)

当您在blob名称中看到其他正斜杠时,它只是一个“虚拟”目录,而不是一个单独的目录实体。

https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/

答案 1 :(得分:0)

您可以通过使用.ListBlobs().OfType<your_chosen_blob_type>()调用来获得目录内容的更详细列表。例如,一种Blob类型是CloudBlobDirectory。查看此答案:https://stackoverflow.com/a/14440507/9654964