【发布时间】:2020-03-31 21:02:50
【问题描述】:
我需要从我的 Azure Blob 存储中下载 1000 个小图像。我不想为每个文件单独请求。如何在 c# 中做到这一点?
现在我正在使用Azure.Storage.Blobs 和Azure.Storage.Blobs.Batch,但它们都没有这个API。后者在发布此问题时只有DeleteBlobs 电话。
【问题讨论】:
标签: c# azure api azure-blob-storage
我需要从我的 Azure Blob 存储中下载 1000 个小图像。我不想为每个文件单独请求。如何在 c# 中做到这一点?
现在我正在使用Azure.Storage.Blobs 和Azure.Storage.Blobs.Batch,但它们都没有这个API。后者在发布此问题时只有DeleteBlobs 电话。
【问题讨论】:
标签: c# azure api azure-blob-storage
我需要从我的 Azure Blob 存储中下载 1000 个小图像。我 不想为每个文件单独请求。如何做到这一点 c#?
很遗憾,Azure Blob 存储中没有可用的批量下载功能。您将需要单独下载每个 blob。您可以做的是并行下载 blob 以加快速度。
【讨论】:
您可以通过并行下载来加快下载速度。
var semaphore = new SemaphoreSlim(100);
List<Task> downloadTasks = new List<Task>();
foreach (var fileName in fileNames)
{
await semaphore.WaitAsync();
downloadTasks.Add(Task.Run(async () =>
{
// here download the file
semaphore.Release();
}));
}
await Task.WhenAll(downloadTasks);
【讨论】: