gpt4 book ai didi

c# - 如何获取具有子目录级别(n 级)的 Blob 容器中的所有 Blob?

转载 作者:太空狗 更新时间:2023-10-29 19:52:22 24 4
gpt4 key购买 nike

尝试使用 ListBlobsSegmentedAsync 方法,但这仅返回主父目录级别的 blob ..

但我需要一次性从所有 n 层子目录中获取完整的 blob 列表。

BlobContinuationToken continuationToken = null;
bool useFlatBlobListing = true;
BlobListingDetails blobListingDetails = BlobListingDetails.None;
int maxBlobsPerRequest = 500;
var blobOptions = new BlobRequestOptions (true );

do
{
var listingResult = await cbDir.ListBlobsSegmentedAsync(useFlatBlobListing, blobListingDetails, maxBlobsPerRequest, continuationToken, null, null);
continuationToken = listingResult.ContinuationToken;
srcBlobList.AddRange(listingResult.Results);
} while (continuationToken != null);

最佳答案

ListBlobsSegmentedAsync方法有 2 个包含 useFlatBlobListing 参数的重载。这些重载接受 7 或 8 个参数,我在你的代码中数了 6 个。因为参数太多,可以使用 named arguments使代码更容易理解。

下面的代码已在.NET Core中成功测试。

BlobContinuationToken blobContinuationToken = null;
do
{
var resultSegment = await cloudBlobContainer.ListBlobsSegmentedAsync(
prefix : null,
useFlatBlobListing: true,
blobListingDetails: BlobListingDetails.None,
maxResults : null,
currentToken : blobContinuationToken,
options : null,
operationContext : null
);

// Get the value of the continuation token returned by the listing call.
blobContinuationToken = resultSegment.ContinuationToken;
foreach (IListBlobItem item in resultSegment.Results)
{
Console.WriteLine(item.Uri);
}
} while (blobContinuationToken != null); // Loop while the continuation token is not null.

此代码源自 Microsoft 的 storage-blobs-dotnet-quickstart存储库。

关于c# - 如何获取具有子目录级别(n 级)的 Blob 容器中的所有 Blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30395502/

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