После того, как я позвонил API (скажем, облачный диск)
InputStream downloadFiles(FileIDListPojo var1, String var2, String var3)
,
Я хочу сделать еще несколько действий, прежде чем написать
inputStream
в servletOutputStream
и возврат к клиенту.
Обычно я отправляю несколько запросов, объединяю их в один ответ и возвращаю клиенту. Вы можете удивиться, почему я не отправлял запросы вместе, потому что я хочу сначала поместить каждый поток ответов в folder (or zip)
, а затем поместить папки в один возвращенный ZipOutputStream.
То, что я сейчас сделал, это зациклил процедуры ниже для всех запросов.
подготовить темп
ByteArrayOutputStream tempOs = new ByteArrayOutputStream();
добавить папку zip в temp
ZipOutputStream zipStream = new ZipOutputStream(tempOs);
zipStream.putNextEntry(new ZipEntry("folder name.zip"));
получить inputStream с облачного диска и записать его в tempOs
input = cloudDriveFileClient.downloadFiles(fileIDListPojo, sessionToken, encoding);
IOUtils.copy(input, tempOs);
запись темпов в поток ответов
response.getOutputStream().write(tempOs.toByteArray());
К сожалению, я не могу получить правильный zip-файл, похоже, что файлы не помещаются в папку, а записываются в одну ...
Поэтому я хочу спросить, можете ли вы взглянуть и дать совет?