Как создать объект MultipartFile из InputStream в Spring Boot

У меня есть 2 службы ServiceA и ServiceB, ServiceB имеет один API под названием createDocument(@RequestParam("file") MultipartFile file). Теперь я хочу вызвать этот API из ServiceA, и я использую FeignClient, и обе службы используют Spring Boot.

Мой FeignClient выглядит примерно так

@FeignClient(
    name = "serviceB",
    url = "com.serviceb.url",
    configuration = {ServiceBErrorDecoder.class},
    fallbackFactory = ServiceBFallbackFactory.class)
@Service
public interface ServiceB{

@PostMapping(value = "/documents")
    ResponseEntity createDocument(@RequestParam("file") MultipartFile file);
}

И теперь в ServiceA я хочу назвать это createDocument API. Я могу это сделать, но проблема в том, как я могу создать объект MultipartFile и передать его? У меня есть объект InputStream с некоторым содержимым, и я не хочу создавать физический файл.

Сервисный код

public void processObjects(Entity entity) throws JsonProcessingException {
    SomeObject object = new SomeObject();
    //setters
    ....
    InputStream inputStream = new ByteArrayInputStream(
            Objects.requireNonNull(SerializationUtils.serialize(object)));
    InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
    
    //How do I create MultipartFile object from this InputStream?
    serviceB.createDocument(**multipartfile**)
}

Пожалуйста помоги. Спасибо


person Pavan    schedule 12.08.2020    source источник
comment
MultipartFile создается самой Spring из входного запроса. Конечно, его все еще можно создать программно, но в этом случае «InputStream» должен содержать все составное тело запроса, точно такое же, как оно было получено. Так что подумайте, в вашем случае будет проще создать другой метод, который принимает inputStream в качестве параметра и вызывать его.   -  person Alex Chernyshev    schedule 12.08.2020
comment
Но я не могу изменить метод или добавить другой метод. Я хочу создать его программно. Я знаю все составные части, которые мне нужно добавить в тело запроса, но не могу сопоставить этот тип MultipartFile. Не могли бы вы сообщить мне какие-либо примеры кода?   -  person Pavan    schedule 12.08.2020
comment
stackoverflow.com/questions/18381928 /   -  person Alex Chernyshev    schedule 12.08.2020
comment
Большое спасибо за ссылку на SO. Это решение - моя последняя надежда. Я подумал, что может быть какая-то библиотека или что-то в этом роде, чтобы мне не пришлось этого делать. Но не повезло. Спасибо мужик за ответ. Я ценю его.   -  person Pavan    schedule 12.08.2020