path("foo" ~ Slash.?) {
complete(HttpEntity(ContentTypes.`application/octet-stream`, ByteString(Files.readAllBytes(Paths.get("foo")))))
}
Скажите foo
- это файл размером 1 ГБ. Я добавил watchTermination
вокруг Flow
ответа, но я получил уведомление перед отправкой ответа , но на самом деле я хотел бы получать уведомление после отправки полного ответа наclient .
Дальнейшие исследования показывают, что watchTermination
построен на GraphStage
, который поддерживает только onUpstreamFinish
, и он onDownstreamFinish
вызывается только при наличии исключения. См. GraphStages.scala # L128
Вот репозиторий моего полного кода: https://github.com/ssgao/akka-http-quickstart-scala/tree/master/src/main/scala/com/example