У меня есть 3 связанных компонента (скажем, A, B, C для простоты).
поток вызовов: клиент -> A -> B -> C
A: APIпредоставляет multipart (сообщение в приложении / json) и двоичный файл (загрузка файла) за один вызов ...
B: API предоставляет одну конечную точку для загрузки файла.Он возвращает InputStreamResource
C: компонент Amazon S3 возвращает S3ObjectInputStream при загрузке.
Это не опция загрузки содержимого файла в память ... поэтому мы не можем делать такие вещи, как getBytes () в коде.Поток должен проходить через все компоненты.
Проблема, возникающая с A, если я возвращаю только двоичный файл (путем создания копии inputStream (), поступающей из компонента ответа B в outputStream ответа от A, это работает хорошо).
Но А должен также вернуть сообщение json (вот почему составная часть). Есть идеи, как вернуть поток и сообщение json в одном ответе?