我如何获得amazon多文件上传s3 android的进度条

时间:2017-01-11 07:01:51

标签: android amazon-web-services amazon-s3 progress-bar multiple-file-upload

现在我正在使用MultipleFileUpload方法。我可以获得进度条。请帮助我。

{{1}}

1 个答案:

答案 0 :(得分: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
    }

});