pg2*_*727 6 c# azure azure-blob-storage
我正在开发允许用户下载 Azure Blob 存储项目的功能。
我正在尝试使用以下方法获取 blob 列表:
var list = await container.GetBlobsAsync(BlobTraits.All, BlobStates.All, string.Empty).ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)
这是我遇到的错误:
错误 CS1061“ConfiguredCancelableAsyncEnumerable”不包含“GetAwaiter”的定义,并且找不到接受“ConfiguredCancelableAsyncEnumerable”类型的第一个参数的可访问扩展方法“GetAwaiter”(您是否缺少 using 指令或程序集引用?)
C# 7.3 可以使用异步吗?或者使用异步调用来获取容器中的所有 blob,我需要升级到 8.0 C#?
如果我将代码更改为:
await foreach (BlobItem page in container.GetBlobsAsync(BlobTraits.None, BlobStates.None, string.Empty))
{
yield return container.GetBlobClient(page.Name);
}
Run Code Online (Sandbox Code Playgroud)
然后我有这个错误:
错误 CS8370 功能“异步流”在 C# 7.3 中不可用。请使用 8.0 或更高版本的语言。
我知道 GetBlobsAsync() 返回AsyncPageable<>
,并且我假设它仅在 C# 8.0 中可用?
Sam*_*ude 10
这是我能想到的两个选择:
使用枚举器例如
var blobs = blobContainerClient.GetBlobsAsync()
List<BlobItem> blobList = new List<BlobItem>();
IAsyncEnumerator<BlobItem> enumerator = blobs.GetAsyncEnumerator();
try
{
while (await enumerator.MoveNextAsync())
{
blobList.Add(enumerator.Current);
}
}
finally
{
await enumerator.DisposeAsync();
}
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
4404 次 |
最近记录: |