使用 java/android 从 azure blob 存储下载大文件并取得进展

问题描述

我正在开发一个 android 应用程序,我需要从 Azure blob 下载文件我可以使用以下代码下载文件,但我还想在下载文件显示进度条,因为它将是一个文件大约 1/2 GB。

Gradle 依赖:

implementation 'com.microsoft.azure.android:azure-storage-android:2.0.0'

我如何下载文件

CloudStorageAccount account = CloudStorageAccount.parse(storageConnectionString);
CloudBlobClient serviceClient = account.createCloudBlobClient();
CloudBlobContainer container = serviceClient.getContainerReference("test");
Iterable blobs = container.listBlobs();
for (Object listBlobItem : blobs) {
     ListBlobItem blob = (ListBlobItem) listBlobItem;
     CloudBlockBlob cloudBlob = (CloudBlockBlob) blob;
     // Downloading files from the container
     cloudBlob.downloadToFile(fileSample.getAbsolutePath());
     Log.e("INFO","File downloaded");
 }

如何获取下载进度?

解决方法

thread1 中的过程提供了通过将 Blob 拆分成小块来下载 Blob 的方法,该过程在此 thread2 的建议中引用,可能会提供有关如何处理的想法。

-感谢@Gaurav mantri

其他参考: Asynchronous-parallel-blob-transfers