【发布时间】:2021-12-01 16:53:29
【问题描述】:
我有位于容器下的子目录样式的 blob 文件,
- 容器名称 = 日志测试
- 年份文件夹
- 月文件夹
- 日期文件夹
- 小时文件夹
每小时通过 C# 后台作业,我需要下载该 Hour 文件夹的所有 blob 文件。
在下面的代码中,我可以下载带有硬代码路径(年/月/日/小时/blob 名称)的one 文件,但是如何下载当前日期/时间小时的所有 blob 文件?
var blobServiceClient = new BlobServiceClient("conn-str");
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient("log-test");
BlobClient blobClient = containerClient.GetBlobClient("2021/08/11/01/log.txt");
await blobClient.DownloadToAsync(@"C:\Temp\Result.txt");
注意:- 我试过了,但这是性能问题吗?我不能直接转到实际的 HOUR 文件夹吗?
var blobItems = containerClient.GetBlobs().Where(blobItem => blobItem.Properties.LastModified != null
&& blobItem.Properties.LastModified.Value.Year == DateTime.UtcNow.Year
&& blobItem.Properties.LastModified.Value.Month == DateTime.UtcNow.Month
&& blobItem.Properties.LastModified.Value.Day == DateTime.UtcNow.Day
&& blobItem.Properties.LastModified.Value.Hour == DateTime.UtcNow.Hour)
.ToList();
foreach (var blob in blobItems)
{
BlobClient blobClient = containerClient.GetBlobClient(blob.Name);
await blobClient.DownloadToAsync($"C:\\Temp\\{blob.Name.Replace('/','-')}");
}
【问题讨论】:
-
注意:- 我试过这个,但这是性能问题吗?我不能直接转到实际的 HOUR 文件夹吗?
标签: c# azure-blob-storage