如何在安卓设备上通过亚马逊S3实现多文件上传进度条

3

我现在正在使用MultipleFileUpload方法。如何为此获取进度条?请帮帮我。

 MultipleFileUpload upload = tm.uploadFileList(
            "backetname", s3_path, myDir_temp, collection_file, metadataProvider);
1个回答

0

使用AWS SDK for Android并查看AWS文档:https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/s3transferutility.html

使用Transfer Utility,download()和upload()方法返回一个TransferObserver对象。该对象提供以下访问权限:

状态(现在指定为枚举) 到目前为止传输的总字节数 要传输的总字节数(用于轻松计算进度条) 您可以用来跟踪不同传输的唯一ID 给定传输ID,可以从应用程序中的任何位置检索此TransferObserver对象,包括如果应用程序被杀死。它还允许您创建TransferListener,在状态或进度更改以及发生错误时进行更新。

要获取下载或上传的进度,请在TransferObserver上调用setTransferListener()。这需要您实现onStateChanged、onProgressChanged和onError。例如:

TransferObserver transferObserver = download(MY_BUCKET, OBJECT_KEY, MY_FILE);
transferObserver.setTransferListener(new TransferListener(){

    @Override
    public void onStateChanged(int id, TransferState state) {
        // do something
    }

    @Override
    public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {
        int percentage = (int) (bytesCurrent/bytesTotal * 100);
        //Display percentage transfered to user
    }

    @Override
    public void onError(int id, Exception ex) {
        // do something
    }

});

这个是用于单个文件上传的,我说得对吗?我需要多个文件上传的进度条。我在问题中提到了上传方法。 - prakash Mp
如果您按照AWS文档操作,您会发现需要调用监听器,然后它应该可以工作。 - Karan Shah
1
我也尝试过监听器函数。它只被调用一次,所以我们只能得到初始状态。 - prakash Mp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接