I'm downloading a blob from blob storage that is 1GB in size.
If I use MS Azure storage explorer it takes under 10 minutes (I have a 20 megabits down line).
However when I use code:
await blobRef.DownloadToFileAsync("D:\\temp\\data.mdf", FileMode.Create);
(I've also tried to use an in memory stream) it takes over an hour to download 250MB (At which point I killed it). I've done this test multiple times and it happens consistently.
I also monitored the network traffic.
EDIT: I'm still using an old version of Azure Storage Explorer (1.4.1). But I can confirm new versions are also giving the same results.
When object is downloaded directly from Azure Blob Storage to outside of Azure - the speed (tested by wget) is around 0.2 to 0.5 MB/s When the same object is downloaded to a VM in Azure - the speed is around 60 MB/s
Easily manage your Azure storage accounts in the cloud, from Windows, macOS, or Linux, using Azure Storage Explorer. Easily manage your Azure storage accounts in the cloud, from Windows, macOS, or Linux, using Azure Storage Explorer. Azure Storage Explorer – cloud storage management | Microsoft Azure
When the same object is downloaded to a VM in Azure - the speed is around 60 MB/s It may seem like a network issue, but....
For example, use the Azure Data Factory extension to move data from other cloud storage services, such as AWS S3, to Azure Storage. Seamlessly view, search and interact with your data and resources using an intuitive interface. Improved accessibility with multiple screen reader options, high-contrast themes and hot keys on Windows and macOS.
You should specify which version of MS Azure Storage explorer your're using.
If you're using some newer versions of 1.9.0 / 1.8.1 / 1.8.0 etc.(please find more details in this link), then Azure Storage Explorer is integrated with azcopy which is using simple commands designed for optimal performance. So you can have a good-performance for downloading / uploading etc.
When using code for downloading / uploading blobs, you can take use of this Microsoft Azure Storage Data Movement Library. This library is based on the core data movement framework that powers AzCopy, which also provides you high-performance uploading, downloading.
I eventually tried 2 solutions proposed by @Ivan and @mjwills:
Both solutions much faster than the original DownloadToFileAsync. DownloadToFileParallelAsync is only available in later versions of the library and hence was not available in the one I had installed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With