【问题标题】:How can i get progress bar for amazon multiple file upload s3 android我如何获得亚马逊多文件上传 s3 android 的进度条
【发布时间】:2017-05-25 21:00:11
【问题描述】:

现在正在使用 MultipleFileUpload 方法。我怎样才能获得进度条。请帮帮我。

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

【问题讨论】:

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


    【解决方案1】:

    使用适用于 Android 的 AWS 开发工具包并检查 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
        }
    
    });
    

    【讨论】:

    • 这个单文件上传。对吗? .我需要多个文件上传的进度条。我提到了有问题的上传方法。
    • 如果您按照 AWS 文档进行操作,您可以看到您必须调用 Listener,它应该可以工作
    • 我也厌倦了监听函数。它只调用了一次。所以只有我们得到开始状态..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 2013-06-09
    相关资源
    最近更新 更多