java - Amazon S3 AWS 上传进度监听器
问题描述
有谁知道如何在 Amazon S3 的分段上传中查看上传进度(百分比)?
解决方案
我会这样做:
MultipleFileUpload transfer = transferManager.uploadDirectory(mybucket, null, new File(localSourceDataFilesPath), false);
// blocks the thread until the upload is completed
showTransferProgress(transfer);
然后在showTransferProgress中,我将使用睡眠创建一个上传块,并每隔 X 秒进行一次数学运算:
private void showTransferProgress(MultipleFileUpload xfer) {
while (!xfer.isDone()) {
// some logic to wait so you don't do the math every second like a Thread.sleep
TransferProgress progress = xfer.getProgress();
long bytesTransferred = progress.getBytesTransferred();
long total = progress.getTotalBytesToTransfer();
Double percentDone = progress.getPercentTransferred();
LOG.debug("S3 xml upload progress...{}%", percentDone.intValue());
LOG.debug("{} bytes transferred to S3 out of {}", bytesTransferred, total);
}
// print the final state of the transfer.
TransferState xferState = xfer.getState();
LOG.debug("Final transfer state: " + xferState);
}
这条线就是你要找的:
Double percentDone = progress.getPercentTransferred();
推荐阅读
- r - 是否有 R 函数可以从大型数据集中查找重复的 ID?
- html - divbox 底部的空格
- python - 如何根据作为输入给出的长度打印字符串?
- android - 阻止整个屏幕的 Android 10+ 向后滑动手势
- c# - vs2017如何读取配置文件
- c# - 如何在 JSON 请求中包含对象和整数?
- r - 为什么 fread() 花了这么长时间?(R 4.0.3)
- typescript - 如何限制打字稿的文字表达式只接受可用的属性?
- android - 致命异常:主进程:com.delegates.predelegatesapprider,PID:8258 java.lang.NoClassDefFoundError:
- android - 自定义背景资源在android中不起作用