我现在正在使用MultipleFileUpload方法。如何为此获取进度条?请帮帮我。
MultipleFileUpload upload = tm.uploadFileList(
"backetname", s3_path, myDir_temp, collection_file, metadataProvider);
我现在正在使用MultipleFileUpload方法。如何为此获取进度条?请帮帮我。
MultipleFileUpload upload = tm.uploadFileList(
"backetname", s3_path, myDir_temp, collection_file, metadataProvider);
使用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
}
});