Jestem całkiem początkującym dla Akka Streams i Akka HTTP.Jak korzystać z HTTP Akka do generowania treści przez strumień wyjściowy
Chciałbym wygenerować prosty serwer HTTP, który może wygenerować plik zip z zawartości folderu i wysłać go do klienta.
Plik org.zeroturnaround.zip.ZipUtil bardzo ułatwia tworzenie pliku zip, ale potrzebuje on outputStream
.
Oto moje rozwiązanie (w języku Scala):
val os = new ByteArrayOutputStream()
ZipUtil.pack(myFolder, os)
HttpResponse(entity = HttpEntity(
MediaTypes.`application/zip`,
os.toByteArray))
To rozwiązanie działa, ale zachowuje całą zawartość do pamięci, więc nie jest skalowalne.
Myślę, że kluczem do rozwiązania tego problemu jest użycie w tym:
val source = StreamConverters.asOutputStream()
ale nie wiem, jak go używać. :-(
Każda pomoc proszę?
Chciałbym wiedzieć przed :) – expert
pisząc ten sam także był dość pouczające i zabawne ... –
wygląda na to łatwe, ale to nie w moim przypadku: 'java.lang.IllegalStateException: jeszcze nie zainicjowany: tylko SetHandler jest dozwolone w konstruktorze GraphStageLogic ' –