Я пытаюсь объединить webflux и AWS s3 2.x версию lib
private S3AsyncClient s3Client;
public Mono<String> uploadFile(
final String accountCode,
final String fileName,
final FilePart file,
final Long contentLength
) {
var key = String.format("%s/%s/%s", accountCode, s3Config.getDocumentsFolder(), fileName);
var publisher = file.content().map(DataBuffer::asByteBuffer);
return Mono.fromCompletionStage(s3Client.putObject(
PutObjectRequest.builder()
.contentLength(contentLength)
.bucket(s3Config.getBucketName())
.key(key)
.build(),
AsyncRequestBody.fromPublisher(publisher)
)
).map(response -> {
......
})
}
Каждый раз, когда запускается API, он на некоторое время зависает, а затем
Caused by: java.lang.IllegalStateException: Unable to create the inputStream.
....
Caused by: java.io.FileNotFoundException: /var/folders/s1/g4d7dvhn5blctyrwq784t3cm0000gn/T/nio-file-upload/nio-body-1-a88eafe1-dc4b-4fdb-9668-8480efda6fc8.tmp (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method) ~[na:na]
Кажется, чанки переносят использование временного файла. Но я понятия не имею, почему он отсутствует. Подскажите, пожалуйста, что я делаю не так?