Потоковая передача файлов из одной системы в другую без временного файла - PullRequest
0 голосов
/ 20 июня 2019

Возникла уникальная потребность, когда мне нужно загрузить поток файлов из одного источника через HTTP, а затем загрузить этот поток файлов в другой сервис через HTTP.

Хотя это легко выполнимо

  1. Загрузка файла с сервера A
  2. Хранить локально (временно) на сервере приложений, который сделал запрос на загрузку
  3. Затем загрузите файл как документ с несколькими деталями на сервер B

Однако я стараюсь избегать шага 2.

Итак, мой вопрос: возможно ли направить поток из загрузки с шага 1 в загрузку на потоке 2? Я не могу загрузить сервер A напрямую на сервер B.

В следующем примере он использует FileSystemResource, но мне нужно передать его как поток - поток, который я получу из загрузки.

HttpHeaders headers = crateHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);MultiValueMap<String, Object> parameters = new LinkedMultiValueMap<>();
parameters.add("metadata", jsonObject);
parameters.add("content", new FileSystemResource(fileToUpload));
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(parameters, headers);
...