gpt4 book ai didi

scala - 使用 Akka 将文件从服务器流式传输到客户端

转载 作者:行者123 更新时间:2023-12-04 18:29:27 26 4
gpt4 key购买 nike

基本上我想允许用户从服务器下载一个 csv 文件。假设 CSV 文件已存在于服务器上。 API 端点通过 GET/export 公开。如何将文件从 Akka HTTP 服务器流式传输到客户端?这是我到目前为止...

服务:

def export(): Future[IOResult] = {
FileIO.fromPath(Paths.get("file.csv"))
.to(Sink.ignore)
.run()
}

路线:
pathPrefix("export") {
pathEndOrSingleSlash {
get {
complete(HttpEntity(ContentTypes.`text/csv`, export())
}
}
}

最佳答案

Akka-Stream API 允许您直接从 Source[ByteString, _] 中创建实体。 ,所以你可以做一些类似的事情

pathPrefix("export") {
pathEndOrSingleSlash {
get {
complete(HttpEntity(ContentTypes.`text/csv(UTF-8)`, FileIO.fromPath(Paths.get("file.csv")))
}
}
}

请注意,通过这种方式,您的服务器代码在通过网络发送之前不需要在内存中摄取整个 CSV 文件。文件内容将在启用背压的流中发送。更多相关信息 here .

关于scala - 使用 Akka 将文件从服务器流式传输到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41150546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com