Я пытаюсь загрузить файл в Amazon S3. Чтобы сделать мой процесс загрузки асинхронным через Java, я сделал что-то вроде этого:
CompletableFuture.runAsynch(() -> {
PutObjectRequest request = new PutObjectRequest(bucketName, keyName, new File(filePath));
request.setGeneralProgressListener(new ProgressListener() {
public void progressChanged(ProgressEvent progressEvent) {
LOGGER.info("Transferred bytes: " + progressEvent.getBytesTransferred());
}
});
PutObjectRequest upload = s3Client.putObject(request);
}
);
Когда я вызываю этот web-api, он успешно возвращается и файл загружается в фоновом режиме, потому что он асинхронный. В журнале консоли я могу распечатать переданные байты. Но как показать индикатор выполнения в пользовательском интерфейсе, относительно этой асинхронной загрузки файла?