c# - Blob 代码下载比 MS Azure 存储资源管理器慢得多
问题描述
我正在从大小为 1GB 的 blob 存储下载一个 blob。
如果我使用 MS Azure 存储资源管理器,它需要不到 10 分钟(我有一个 20 兆的下行线)。
但是,当我使用代码时:
await blobRef.DownloadToFileAsync("D:\\temp\\data.mdf", FileMode.Create);
(我也尝试使用内存流)下载 250MB 需要一个多小时(此时我杀死了它)。我已经多次完成了这个测试,并且它始终如一地发生。
我还监控了网络流量。
- 通过 Storage Exlorer 向下的网络流量约为 20Megabits
- 通过代码向下的网络流量约为1Megabit
编辑:我仍在使用旧版本的 Azure 存储资源管理器(1.4.1)。但我可以确认新版本也给出了相同的结果。
解决方案
您应该指定您正在使用的 MS Azure 存储资源管理器的版本。
如果您正在使用一些较新版本的 1.9.0 / 1.8.1 / 1.8.0 等(请在此链接中找到更多详细信息),则 Azure 存储资源管理器与azcopy集成,它使用旨在获得最佳性能的简单命令。所以你可以有一个很好的下载/上传等性能。
使用代码下载/上传 Blob 时,您可以使用此Microsoft Azure 存储数据移动库。此库基于为 AzCopy 提供支持的核心数据移动框架,该框架还为您提供高性能的上传、下载。
推荐阅读
- c# - c# 无法转换 system.collections.generic.icollection
到 KMSEntities.PMRUnitTypes - python - GDAL 库,谁做什么
- maven - SpringBoot 和 GitLab CI 给出了 maven 万无一失的错误
- c++ - 增强 UE4 插件中的野兽集成问题?
- php - 我将如何运行 Amazon SQS 的队列?这是一个 cron 工作吗?
- c++ - 这个 C++ 中的数组输入代码有什么问题?
- excel - 在列中查找一个值,然后在同一行的其他位置更改一个值
- javascript - 火狐window.print() android
- excel - 如果列已经包含某个值,则自动递增
- pandas - 将非结构化数据解析为 pandas 数据框