Я довольно новичок в потоках Akka и Akka HTTP.Как использовать Akka HTTP для генерации содержимого через выходной поток
Я хотел бы создать простой HTTP-сервер, который может генерировать zip-файл из содержимого папки и отправлять ее клиенту.
org.zeroturnaround.zip.ZipUtil делает задачу создания zip-файла очень простой, но ему нужен outputStream
.
Вот мое решение (написанный на Scala языке):
val os = new ByteArrayOutputStream()
ZipUtil.pack(myFolder, os)
HttpResponse(entity = HttpEntity(
MediaTypes.`application/zip`,
os.toByteArray))
Это решение работает, но сохраняет все содержимое памяти, так что это не является масштабируемым.
Я думаю, что ключ к решению этой проблемы является использование этого:
val source = StreamConverters.asOutputStream()
, но не знаю, как использовать его. :-(
Любая помощь, пожалуйста?
Если бы я знал это раньше :) – expert
пишу это себя также было весьма поучительно и весело ... –
Это выглядит легко, но он не в моем случае: 'java.lang.IllegalStateException: еще не инициализирован: только SetHandler разрешено в GraphStageLogic constructor' –