Я пытаюсь реализовать индикатор выполнения всякий раз, когда загружаю файл на 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);
}
);
Я видел, как S3 отображает индикатор выполнения загрузки, он отображает два apis, один из которых, я полагаю, для соединения после завершения запроса на установление соединения, и другой для процесса загрузки, который завершается после процесса загрузки.бар 100%.Но он не блокирует пользовательский интерфейс.


Первое изображениеS3 загрузить прогресс-бар с двумя запросами.Один завершен, другой завершен после завершения загрузки
Второе изображение из версии приложения загрузки вasticbeanstalk.Он показывает прогресс загрузки Google Chrome
Как добиться какого-либо одного прогресса загрузки.Это потому, что я использую CompletableFuture или я должен загружать метод transfremanager, а не только putObject из клиента Amazon S3.Какой должен быть мой подход.