Я создал такой метод:
Flux<GetObjectResponse> download(String bucket, List<String> s3FileNames) {
String tmpDirName = UUID.randomUUID().toString();
Path dir = Paths.get(tmpDirName);
if (!Files.exists(dir)) {
try {
Files.createDirectory(dir);
} catch (IOException e) {
e.printStackTrace();
}
}
return Flux.fromIterable(s3FileNames)
.flatMap(filename -> Mono.just(GetObjectRequest.builder().bucket(bucket).key(filename).build()))
.flatMap(getObjectRequest -> Mono.fromFuture(s3AsyncClient.getObject(getObjectRequest, Paths.get(tmpDirName, getObjectRequest.key()))));
}
Позже я обрабатываю этот реактивный поток, но IntelliJ дает мне подсказку, когда я вызываю Files.createDirectory(dir)
:
Inappropriate blocking method call less... (Ctrl+1)
Inspection info: Reports thread-blocking method calls found in a code fragment where a thread should not be blocked
Is IntelliJправо?NIO блокируется при взаимодействии с файлами?