我需要从我的Azure Blob Storage下载1000个小图像。 我不想为每个文件进行单独的请求。 如何在c#中实现?
目前我正在使用Azure.Storage.Blobs和Azure.Storage.Blobs.Batch,但它们都没有这个API。 后者仅在发布此问题时有DeleteBlobs调用。
目前我正在使用Azure.Storage.Blobs和Azure.Storage.Blobs.Batch,但它们都没有这个API。 后者仅在发布此问题时有DeleteBlobs调用。
我需要从Azure Blob Storage中下载1000个小图像。我不想为每个文件单独发出请求。如何在C#中实现?
很不幸,在Azure Blob Storage中没有批量下载功能。您需要逐个下载每个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);