在我的应用程序中,我想要容器的所有 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 的异步对应项。所以,你应该打电话ListBlobSegmentedAsync https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.storage.blob.cloudblobclient.listblobssegmentedasync?view=azure-dotnet-legacy并处理它返回的继续令牌。
如果您想查看示例用法,我建议您查看 Azure 存储客户端库的单元测试(请参阅测试 CloudBlobContainerListBlobsSegmentedAsyncCloudBlobContainer Test.cs https://github.com/Azure/azure-storage-net/blob/3187d0f14d78fbb060dcbc9e7be6aee8a36b3532/Test/WindowsRuntime/Blob/CloudBlobDirectoryTest.cs#L123).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)