Playframework 播放框架-流文件响应

Playframework 播放框架-流文件响应,playframework,playframework-2.0,Playframework,Playframework 2.0,我有一个操作,它打算返回一个描述保存在某个数据库中的记录的文件(Cassandra)。 因为可能会描述许多记录,所以在创建响应之前,我宁愿不将整个表示存储在内存中。 我当前的解决方案是在使用FileWriter编写的文件系统上创建一个文件,并在完成文件计算后将其返回为: val responseFile = new File(records_file_path) val fileContent = Enumerator.fromFile(responseFile) Ok.sendFile(

我有一个操作,它打算返回一个描述保存在某个数据库中的记录的文件(Cassandra)。 因为可能会描述许多记录,所以在创建响应之前,我宁愿不将整个表示存储在内存中。 我当前的解决方案是在使用FileWriter编写的文件系统上创建一个文件,并在完成文件计算后将其返回为:

val responseFile = new File(records_file_path)
val fileContent = Enumerator.fromFile(responseFile)

Ok.sendFile(
  content = responseFile,
  fileName = _ => "records_descriptions.csv"
)
有没有更好的方法不需要将文件持久保存在磁盘上?
我在考虑像ChunkedResult这样的东西,也许?

我只是不知道如何创建输出流,将DB记录写入其中,而不同时将整个内容加载到堆上。

解决方案是创建枚举器而不是流。

我在从数据库返回的Seq上使用map方法创建了枚举数,在控制器端使用Ok.chunked(resultsenmerator)

我也使用ChunkedResult。我在Java中使用了它们,并且在中工作得很好。