Я загружаю свои объекты приложения в s3 через диспетчер переноса.Он отлично работает, за исключением редких случаев, когда для объекта размером 300 КБ требуется 15 минут.Я просто пытаюсь представить логику повторных попыток, чтобы через 30 секунд можно было прервать текущую загрузку и повторно отправить ее.Ниже приведен мой код
private static UploadResult put(
final AmazonS3 amazonS3,
final Supplier<PutObjectRequest> requestSupplier) throws Exception {
TransferManager tx = TransferManagerBuilder
.standard()
.withS3Client(amazonS3)
.build();
try {
Upload myUpload = tx.upload(requestSupplier.get());
return myUpload.waitForUploadResult();
} finally {
tx.shutdownNow(false);
}
}
Можем ли мы получить что-то, что позволит мне тайм-аут этого запроса на загрузку, скажем, через 30 секунд, чтобы я мог повторить попытку.Метод waitForUploadResult является блокирующим вызовом, поэтому ничего не могу с этим поделать, но дождитесь его завершения.
Заранее спасибо!