ListBlobsSegmentedAsync不返回所有blob目录

时间:2018-05-14 23:06:56

标签: c# azure azure-storage azure-storage-blobs

我有一个层次结构的blob容器,大约有12k个blob。

- 级别1

   --level21

         --level211

         --level212

   --level22

所以目前我有两个问题

  1. 我看不到ListBlobs,即使它出现在很多文章中。我知道它很奇怪。但编译器没有通过。 https://i.stack.imgur.com/bVnrC.jpg 我使用的是c#.netcore 1.1和WindowsAzure.Storage 8.0,因此它不应该是版本问题。

  2. 所以我使用的是ListBlobsSegmentedAsync,例如,level21下有80个子文件夹,但是这个方法只返回10个子文件夹。 await blobs.ListBlobsSegmentedAsync(false,BlobListingDetails.None,20000,null,null,null);

2 个答案:

答案 0 :(得分:0)

实际上是包版本问题。对于.Net Core,WindowsAzure.Storage 8.0没有方法ListBlobs。将软件包更新到最新版本(9.1.1),然后你会看到它。

对于ListBlobsSegmentedAsync,我无法在我身边重现你的问题。您设置为20000的最大值,设计限制为5000,您可以尝试更改它,但在我看来它并不重要。如果您必须使用此方法,则可以向我们显示有关您的代码的更多详细信息。

答案 1 :(得分:0)

预计ListBlobsSegmentedAsync会返回部分blob,因为它正是该方法正在做的事情(以分段方式列出blob,不能保证在一次调用中返回所有结果)。

您可以参考this blog post了解如何使用延续令牌获取所有结果。