c# - 在 CloudBlobContainer 中找不到 Listblob()

标签 c# azure azure-storage azure-blob-storage

在我的应用程序中,我想要容器的所有 blob,但在我的代码中(如下所示),CloudBlobContainer 变量容器中没有 Listblob() 方法。我错过了什么吗?

var credentials = new StorageCredentials("xxx", "a37bijfRGGdgaVU+ITEIi0Cp1VrbzMM7Bc9PbMOw2FPAz9twgR+lbTzqGhBfHeJe7UfEp4CXtLxqY5Ek0/5zdg==");
        var client = new CloudBlobClient(new Uri("https://xxx.blob.core.windows.net/"), credentials);
        var container = client.GetContainerReference("publicimage");

//this container variable has not ListBlobs() method
        foreach(IListBlobItem item in container.ListBlobsSegmentedAsync())
        {

        }

最佳答案

ListBlobs 是一种同步方法,因此在不支持同步方法(例如 Windows Phone)的平台上缺失。原因是在 UI 线程上调用同步方法会阻塞 UI 并使应用程序无响应。

另一种方法是使用 *Async 重载。但是,请注意,没有 ListBlobsAsync,因为 .NET 中没有 IEnumerable 的异步对应项。所以,你应该调用ListBlobsSegmentedAsync并处理它返回的继续 token 。

如果您想查看示例用法,我建议您查看 Azure 存储客户端库的单元测试(请参阅 CloudBlobContainerTest.cs 中的测试 CloudBlobContainerListBlobsSegmentedAsync)。

关于c# - 在 CloudBlobContainer 中找不到 Listblob(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396460/

相关文章:

c# - 中继器链接按钮 Onclick 未触发

azure - 如何保护来自 WWW 的 Azure 网站/功能?

c# - 如何使用 azure 服务总线 5.0.0 在 C# azure 函数中手动处理消息完成

azure - Azure 队列中基于租用和基于锁定的独占访问之间的差异

Azure 通用 v2 存储帐户和 BlockBlobStorage 帐户之间的差异有何解释?

c# - 带分隔符的字节正则表达式

c# - 关闭 UserControl 时的事件是什么?

azure - 如何在 Azure 文件共享目录中设置目录元数据

c# - 通过 Facebook 聊天 API (XMPP) C# 发送消息

Azure Blob 存储静态站点托管重定向到后端 Web 应用程序