Сохранение InputStream с помощью FileStorage

Добрый день!
Вопрос такой.
С пол года назад возникла такая проблема, необходимо было скачать файл с S3 и сохранить снова в S3, т.е. сделать копию.
Реализовать попробовали так:

InputStream inputStream = fileStorageLocator.getDefault().openStream(fileRef);
FileRef copyFileRef = fileStorageLocator.getDefault().saveStream(fileRef.getFileName(), inputStream);

В результате при скачивании файла через браузер по ссылке из copyFileRef выяснилось, что скачивается только кусок файла размером 8КБ. Заглянули в бакет S3, там тоже только 8 КБ от файла.
Тогда пришлось добавлять костыль и писать так:

InputStream inputStream = fileStorageLocator.getDefault().openStream(fileRef);
byte[] content = inputStream.readAllBytes();
InputStream is = new ByteArrayInputStream(content);
FileRef copyFileRef = fileStorageLocator.getDefault().saveStream(is);

Сейчас возник другой кейс. FeignClient уже получает в теле ответа файл из другой системы и снова такой код…

Response response = client.download();
InputStream inputStream = response.body().asInputStream();
FileRef fileRef = fileStorage.saveStream(fileName, inputStream);

… сохраняет в S3 только кусок файла размером 16КБ. И снова приходится добавлять костыль, выгружать в память весь файл.
Так вот вопрос, у метода saveStream() так и задумана такая реализация, что для него нужен особенный inputStream?