使用 asp.net core 返回 azure 云 blob 存储中的所有文件名。在 Blob 存储中,有许多子文件夹。每个子文件夹中大约有 20 k 到 25 k 个文件。传递子文件夹名称时,它应该返回该特定文件夹中的所有文件名。我正在使用下面的代码来检索文件
CloudStorageAccount storageAccount =
CloudStorageAccount.Parse(configuration["ConnectionStrings:AzureStorageConnectionString"]);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("portal");
var blobResultSegment = await container.ListBlobsSegmentedAsync("SubFolder",
true, BlobListingDetails.All, int.MaxValue, null, null, null);
var totalFiles =blobResultSegment.Results;
上面的代码不会返回该特定文件夹中的所有文件。他们是获取所有文件名的最佳方法吗?
最佳答案
如果你想递归循环遍历容器子路径中的所有数据,你可以使用类似这样的东西
public async Task FindByStation(string patternMatch)
{
string nextMarker = null;
var continuationToken = new BlobContinuationToken
{
NextMarker = nextMarker,
};
var results = new List<IListBlobItem>();
BlobResultSegment blobResultSegment;
while (continuationToken != null)
{
blobResultSegment = await _blobContainer.ListBlobsSegmentedAsync(patternMatch,
true, BlobListingDetails.All, null, continuationToken, null, null);
continuationToken = blobResultSegment.ContinuationToken;
results.AddRange(blobResultSegment.Results);
}
}
关于azure - Asp.net core从azure云blob段获取所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59375001/