我正在C#中进行一个项目,在这个项目中,我需要使用Azure.Storage.Blobs SDK v12将潜在的大blobs从蔚蓝存储快速下载到本地文件。然而,当我尝试下载一个大约2.8GB大小的Blob时,对于我的需要来说有点慢。
我正在使用我在其他地方看到的DownloadToAsync方法:
Response response = await blob.DownloadToAsync(
destinationPath,
blobDownloadToOptions,
cancellationToken).ConfigureAwait(false);blobDownloadTo选项包含我的TransferOptions,基本如下:
MaximumConcurrency = 8
InitialTransferSize = blobSize / 8
MaximumTransferSize = blobSize / 8还有我的进度处理程序,它让我知道下载有多快。当我使用Azure模拟存储在本地运行它时,我可以通过Fiddler看到请求在所需线程数上发生的情况,它只需要6-7秒。但是一旦它被部署到我的服务中,请求突然需要30秒左右。
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不兼容。
发布于 2022-08-21 19:34:17
·我建议您让满意,使用Azure速度测试工具测试正在下载的blob数据的速度。Azure速度测试工具下载连结如下:
https://www.azurespeed.com/Azure/Download
此外,建议您使用,请使用‘AzCopy’工具,以检查您是否获得了相同的下载速度,因为它将消除您对任何网络掉线的疑虑。
·您还可以查看以下链接,查看Azure存储资源性能和可伸缩性检查表,这肯定有助于提高blobs的下载速度:-
最后,您可以尝试使用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.
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/73410605
复制相似问题