gpt4 book ai didi

c# - 使用 Azure.Storage.Blobs 枚举大型 Azure BLOB 容器

转载 作者:行者123 更新时间:2023-12-02 06:23:14 25 4
gpt4 key购买 nike

Microsoft.WindowsAzure.Storage.Blob我们可以使用 BlobContinuationToken 枚举一个大型 BLOB 容器。在 ListBlobsSegmentedAsync方法,以及 BlobResultSegment将包括 ContinuationToken属性(如果需要后续读取才能从容器中检索更多内容)。

Azure.Storage.Blobs看来枚举 API 是 BlobContainerClient.GetBlobsAsync但方法签名没有提供提供延续 token 的方法,结果为 Azure.AsyncPageable<BlobItem>似乎没有提供作为延续 token 的属性。

有没有人有一个代码片段,用于通过 Azure.Storage.Blobs 使用延续 token 枚举 Azure 上的大型 BLOB 容器包?

最佳答案

如果您确实想使用延续 token ,您可以这样做:

    string continuationToken = null;
var container = new BlobContainerClient("xxx", "test");
var blobPages = container.GetBlobsAsync().AsPages();

await foreach (var page in blobPages)
{
continuationToken = page.ContinuationToken;
foreach(var blob in page.Values)
{
...
}
}

您可以将 token 传递给 AsPages 以继续迭代:

blobPages = container.GetBlobsAsync().AsPages(continuationToken: continuationToken);

或者您可以只迭代 blob,让 SDK 完成使用 blob 流提供所有数据的工作:

    var container = new BlobContainerClient("xxx", "test");
var blobs = container.GetBlobsAsync();

await foreach (var blob in blobs)
{
//
}

迭代 blob 可以多次调用 blob 服务。

有关 SDK 中分页的更多信息,请参阅 the docs .

关于c# - 使用 Azure.Storage.Blobs 枚举大型 Azure BLOB 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75010180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com