首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载大型Azure存储块的最快方法?

下载大型Azure存储块的最快方法?
EN

Stack Overflow用户
提问于 2022-08-19 00:05:02
回答 1查看 315关注 0票数 0

我正在C#中进行一个项目,在这个项目中,我需要使用Azure.Storage.Blobs SDK v12将潜在的大blobs从蔚蓝存储快速下载到本地文件。然而,当我尝试下载一个大约2.8GB大小的Blob时,对于我的需要来说有点慢。

我正在使用我在其他地方看到的DownloadToAsync方法:

代码语言:javascript
复制
Response response = await blob.DownloadToAsync(
   destinationPath,
   blobDownloadToOptions,
   cancellationToken).ConfigureAwait(false);

blobDownloadTo选项包含我的TransferOptions,基本如下:

代码语言:javascript
复制
MaximumConcurrency = 8
InitialTransferSize = blobSize / 8
MaximumTransferSize = blobSize / 8

还有我的进度处理程序,它让我知道下载有多快。当我使用Azure模拟存储在本地运行它时,我可以通过Fiddler看到请求在所需线程数上发生的情况,它只需要6-7秒。但是一旦它被部署到我的服务中,请求突然需要30秒左右。

代码语言:javascript
复制
Download Progress: (356725906) in : (4361) ms.
Download Progress: (713461892) in : (8704) ms.
Download Progress: (1070184646) in : (11687) ms.
Download Progress: (1426907400) in : (16048) ms.
Download Progress: (1783630154) in : (19321) ms.
Download Progress: (2140352908) in : (23769) ms.
Download Progress: (2497075662) in : (26981) ms.
Download Progress: (2853782037) in : (30178) ms.

有什么建议或建议可以帮助我提高自己的福利吗?我无法利用DataMovement库,因为它与v12不兼容。

EN

回答 1

Stack Overflow用户

发布于 2022-08-21 19:34:17

·我建议您让满意,使用Azure速度测试工具测试正在下载的blob数据的速度。Azure速度测试工具下载连结如下:

https://www.azurespeed.com/Azure/Download

此外,建议您使用,请使用‘AzCopy’工具,以检查您是否获得了相同的下载速度,因为它将消除您对任何网络掉线的疑虑。

·您还可以查看以下链接,查看Azure存储资源性能和可伸缩性检查表,这肯定有助于提高blobs的下载速度:-

https://learn.microsoft.com/en-us/azure/storage/blobs/storage-performance-checklist?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json#subheading2

最后,您可以尝试使用use the following code for downloading blob from the Azure storage as well as suggest you use the ‘StorageTransferOptions’ class in the .Net Azure SDK code in which you can specify the ‘MaximumConcurrency’ and ‘MaximumTransferSize’ parameters and variables accordingly to maximize the download speed of the blobs from the Azure storage.

代码语言:javascript
复制
var ms = new MemoryStream();
await blobClient.DownloadToAsync(ms).ConfigureAwait(false);
var blobStream = await blobClient.OpenReadAsync().ConfigureAwait(false);
var props = await blobClient.GetPropertiesAsync().ConfigureAwait(false);
return File(blobStream, props.Value.ContentType, blobClient.Name);

欲知更多详情,请参阅以下社区线程连结及以下连结,以取得更多澄清:

https://stackoverflow.com/questions/72981431/downloading-blob-results-in-more-memory-being-used-than-size-of-actual-blob

https://learn.microsoft.com/en-us/answers/questions/89440/getting-very-slow-speed-while-downloading-storage.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73410605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档