我在其开发者页面和Stack Overflow上搜索了Dropbox文档,但我还没有找到一种方法来获取Java SDK for API v2中文件的上传进度。我不知道如何获得上传进度。有人可以帮我这个吗?
我尝试使用ProgresMonitorInputStream
,但它只告诉我读取文件的进度,它并不表示上传进度到Dropbox服务器。
DbxRequestConfig config = DbxRequestConfig.newBuilder("My App/1.0.0").build();
DbxClientV2 client = new DbxClientV2(config, Constants.ACCESS_TOKEN);
FileMetadata metadata;
try {
try (InputStream in = new FileInputStream(filepath)) {
InputStream progressMonitorInputStream = new ProgressMonitorInputStream(null, "Uploading...", in);
metadata = client.files()
.uploadBuilder("/test.exe")
.withMode(WriteMode.OVERWRITE)
.uploadAndFinish(progressMonitorInputStream);
}
} catch (DbxException | IOException e) {
e.printStackTrace(System.err);
return;
}
我希望上传进度能够在JProgressBar中显示。
答案 0 :(得分:2)
Dropbox团队的Greg K.最近对此回应:
Dropbox API v2 Java SDK现在提供用于上载和下载的进度侦听器。该版本已在v3.0.9中发布:
https://github.com/dropbox/dropbox-sdk-java/releases/tag/v3.0.9
这里有一个将其与
uploadAndFinish
方法(https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.0.x/com/dropbox/core/DbxUploader.html#uploadAndFinish-java.io.InputStream-long-com.dropbox.core.util.IOUtil.ProgressListener-)结合使用以上传的示例:文件下载的工作方式相同;下载方法(https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.0.x/com/dropbox/core/DbxDownloader.html#download-java.io.OutputStream-com.dropbox.core.util.IOUtil.ProgressListener-)可以选择采用相同方式的
ProgressListener
参数。