azure - Asp.net core从azure云blob段获取所有文件

标签 azure asp.net-core asp.net-core-mvc azure-blob-storage

使用 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/

相关文章:

azure - 使用 ARM 将 PFX 证书添加到 Azure WebApp(不适用于 ssl)

c# - 在 ASP.Net Core 中应该在哪里存储身份验证 token

asp.net-core - 使用新的 VSO 构建代理为 vNext 应用程序设置 CD

c# - 转换为 ASPNET Core 3.1 后 MVC 找不到 View

Azure 应用服务容器在 ASP.NET Core MVC .NET 6 上崩溃并出现 "Could not load file or assembly"

azure - 在 Azure Functions 中加载客户端

azure - 如何在 Azure 文件共享目录中设置目录元数据

列表中缺少 Azure Web 作业

asp.net-web-api - ASP.NET Core,以查询字符串为模板的 Web API RouteAttribute

c# - IOptions<Applications> 不包含 ASP.NET 5 Beta 8 中的定义 'Options'