如何使用c#从Azure Blob Storage下载多个文件?

5
我需要从我的Azure Blob Storage下载1000个小图像。 我不想为每个文件进行单独的请求。 如何在c#中实现?
目前我正在使用Azure.Storage.Blobs和Azure.Storage.Blobs.Batch,但它们都没有这个API。 后者仅在发布此问题时有DeleteBlobs调用。
2个回答

11

我需要从Azure Blob Storage中下载1000个小图像。我不想为每个文件单独发出请求。如何在C#中实现?

很不幸,在Azure Blob Storage中没有批量下载功能。您需要逐个下载每个Blob。您可以并行下载Blob以加快速度。


10

您可以通过并行下载来加速下载速度。

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);

采纳了您的建议,一拍即合。谢谢! - Tom McAnnally

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接