如何使用 c# 从 Azure Blob 存储的单个请求中下载多个文件?

And*_*nyi 1 c# api azure azure-blob-storage

我需要从我的 Azure Blob 存储下载 1000 个小图像。我不想对每个文件提出单独的请求。如何在 C# 中做到这一点?

现在我正在使用Azure.Storage.BlobsAzure.Storage.Blobs.Batch但他们都没有这个 API。后一个只有DeleteBlobs在发布这个问题的那一刻才打电话。

Mar*_*cik 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);
Run Code Online (Sandbox Code Playgroud)


Gau*_*tri 6

我需要从我的 Azure Blob 存储下载 1000 个小图像。我不想对每个文件提出单独的请求。如何在 C# 中做到这一点?

遗憾的是,Azure Blob 存储中没有可用的批量下载功能。您需要单独下载每个 blob。您可以做的是并行下载 blob 以加快速度。