【发布时间】:2022-01-06 06:47:39
【问题描述】:
我正在使用 ZIO 流创建一个 ByteArrayOutputStream,即:
lazy val byteArrayOutputStream = new ByteArrayOutputStream()
val sink = ZSink.fromOutputStream(byteArrayOutputStream).contramapChunks[String](_.flatMap(_.getBytes)
val data = ZStream.unwrap(callToFunction).run(sink)
这很好用 - 现在我需要使用 akka http 将这些数据流式传输回客户端。 我可以这样做:
val arr = byteArrayOutputStream.toByteArray
complete(HttpEntity(ContentTypes.`application/octet-stream`, arr)
这可行,但当然 toByteArray 将输出流带入内存,即我不流式传输数据。我遗漏了一些明显的东西 - 有没有简单的方法可以做到这一点?
【问题讨论】:
标签: scala akka-http reactive-streams bytearrayoutputstream zio-streams