Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Azure Android存储SDK上上载blob文件期间获取进度_Java_Android_Azure_Android Asynctask_Azure Storage Blobs - Fatal编程技术网

Java 在Azure Android存储SDK上上载blob文件期间获取进度

Java 在Azure Android存储SDK上上载blob文件期间获取进度,java,android,azure,android-asynctask,azure-storage-blobs,Java,Android,Azure,Android Asynctask,Azure Storage Blobs,我使用这种方法上传Blob上的一些文件(有些文件很大,需要几分钟才能上传) private void updateFilesOnBlob(){ 试一试{ String timestamp=Tools.generateTimeStamp(); //从连接字符串中检索存储帐户。 CloudStorageAccount-storageAccount=CloudStorageAccount.parse(storageConnectionString); //创建blob客户端。 CloudBlobCli

我使用这种方法上传Blob上的一些文件(有些文件很大,需要几分钟才能上传)

private void updateFilesOnBlob(){
试一试{
String timestamp=Tools.generateTimeStamp();
//从连接字符串中检索存储帐户。
CloudStorageAccount-storageAccount=CloudStorageAccount.parse(storageConnectionString);
//创建blob客户端。
CloudBlobClient blobClient=storageAccount.createCloudBlobClient();
//检索对以前创建的容器的引用。
CloudBlobContainer container=blobClient.getContainerReference(容器名称);
//在Blob上上载每个文件
对于(int i=0;i
如您所见,我使用
blob.upload()
开始上传文件。有没有办法得到进度百分比

当然,我正在AsyncTask的
doInBackground
中运行此方法,因此在
onProgressUpdate()中更新UI应该很容易。我只需要知道上传过程的进度。

您可以使用并计算百分比

@PaoloRotolo,有一个介绍如何在上传blob的过程中使用C制作流程栏。它与Java中的Android非常相似。您可以尝试参考博客的示例代码和Azure Storage SDK for Android的示例代码来编写它

    private void updateFilesOnBlob(){
    try {
        String timestamp = Tools.generateTimeStamp();

        // Retrieve storage account from connection-string.
        CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);

        // Create the blob client.
        CloudBlobClient blobClient = storageAccount.createCloudBlobClient();

        // Retrieve reference to a previously created container.
        CloudBlobContainer container = blobClient.getContainerReference(CONTAINER_NAME);

        // Upload each file on Blob
        for (int i = 0; i< pathsArrayList.size(); i++) {
            // Define the path to a local file.
            final String filePath = pathsArrayList.get(i);
            CloudBlockBlob blob = container.getBlockBlobReference(timestamp + "/" + filenameFromPath(pathsArrayList.get(i)));
            File source = new File(filePath);
            blob.upload(new FileInputStream(source), source.length());
        }
    }
    catch (Exception e)
    {
        // Output the stack trace.
        e.printStackTrace();
    }
}