У меня есть два сервера, где сервер A отправляет файлы на сервер B. На сервере B у меня есть конечная точка, которая получает файлы данной категории.Это подпись конечной точки, мне нужно отправить файлы:
@PostMapping("/uploadMultipleFiles/{projectId}")
public List<UploadFileResponseDts> uploadMultipleFiles(@RequestParam("files") MultipartFile[] files, @RequestParam("categoryId") Long categoryId, @PathVariable("projectId") Long projectId) {
return uploadMulitpleFiles(files, categoryId, projectId);
}
Теперь у меня возникли проблемы при создании такого запроса с обменом RestTemplate.На сервере A я пытаюсь отправить файлы один за другим (конечная точка на сервере B должна принимать многокомпонентный массив, поскольку он также используется где-то еще).Это то, что я пробовал:
public Optional<String> uploadFile(File file, Long projectId) throws Exception {
String authToken = getAccessToken();
String projectFileUploadEndpoint = fileUploadEndpoint + SEPARATOR + projectId;
FileInputStream input = new FileInputStream(file);
byte[] bytes = IOUtils.toByteArray(input);
MultiValueMap<String, Object> parts =
new LinkedMultiValueMap<>();
parts.add("files", new ByteArrayResource(bytes));
parts.add("categoryId", 0L);
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.set("Authorization", authToken);
HttpEntity<MultiValueMap<String, Object>> requestEntity =
new HttpEntity<>(parts, headers);
ResponseEntity<String> response =
restTemplate.exchange(projectFileUploadEndpoint ,
HttpMethod.POST, requestEntity, String.class);
return Optional.empty();
}
это почти работает, единственная проблема заключается в том, что на сервере B files
с @RequestParam("files") MultipartFile[] files
всегда ноль.Я предполагаю, что проблема в том, как я собираю parts
на моем сервере A, однако я не могу найти свою ошибку.Не могли бы вы указать на это?