Я пытаюсь выяснить, как написать метод для простой отправки файла с контроллера webflux на «обычный» контроллер.
Я постоянно получаю общую ошибку, но ничего, что я пробовал, не помогло.
Метод, из которого я отправляю файл:
@GetMapping("process")
public Flux<String> process() throws MalformedURLException {
final UrlResource resource = new UrlResource("file:/tmp/document.pdf");
MultiValueMap<String, UrlResource> data = new LinkedMultiValueMap<>();
data.add("file", resource);
return webClient.post()
.uri(LAMBDA_ENDPOINT)
.contentType(MediaType.MULTIPART_FORM_DATA)
.body(BodyInserters.fromMultipartData(data))
.exchange()
.flatMap(response -> response.bodyToMono(String.class))
.flux();
}
Я использую его в AWS Lambda со следующей конечной точкой:
@PostMapping(path = "/input", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<List<?>> input(@RequestParam("file") MultipartFile file) throws IOException {
final ByteBuffer byteBuffer = ByteBuffer.wrap(file.getBytes());
//[..]
return new ResponseEntity<>(result, HttpStatus.OK);
}
Но яя постоянно получаю:
{
"timestamp":1549395273838,
"status":400,
"error":"Bad Request",
"message":"Required request part 'file' is not present",
"path":"/detect-face"
}
назад от лямбды;
Я просто неправильно настроил отправку файла, или мне нужно что-то настроить на API-шлюзе, чтобы разрешитьпараметры запроса в?