【发布时间】:2015-01-26 19:20:32
【问题描述】:
我知道以前有人问过非常相似的问题。但我不认为我在 google/stackoverflow 上找到的解决方案适合我。
我开始使用 Scala/Spray 编写一些 Web 服务,似乎在不消耗大量内存的情况下发送大文件的最佳方法是使用流编组。这样,Spray 将发送 http 块。两个问题:
是否可以在不使用 HTTP 块且不将整个文件读入内存的情况下发送文件?
AFAIK akka.io 一次只处理一个写入,这意味着它可以缓冲一个写入,直到它被完全传递给 O/S 内核。对于每个 HTTP 响应,是否可以告诉 Spray 内容的长度?此后,Spray 将请求新数据(通过 akka 消息),直到完成整个内容长度。例如,我表示我的内容长度是 100 字节。 Spray 向我的 actor 发送一条请求数据的消息,我提供 50 个字节。一旦这些数据被传递到 O/S,spray 就会发送另一条消息来请求新数据。我提供剩余的 50 个字节...然后响应完成。
【问题讨论】: