2017-04-19 84 views
2

我是Play新手,正试图将数组[字节]流式传输回给用户。我一直在阅读这个文件在Play FrameWork/scala - 返回来自阵列的流式响应[Byte]

https://www.playframework.com/documentation/2.5.x/ScalaStream

但是当我实现这一点,它说,分块已被弃用,我应该用分块与阿卡,而不是流来源。目前,我有

Ok.chunked(Source.fromBytes(file)) 

其中file是数组(字节),但错误的是:

Expected: Source[NotInferredC, _], actual: Source 

得到这个错误我一头更深试图让不同的解决方案以后,再试图使流实体其中,我有:

Ok.sendEntity(HttpEntity.Streamed(Source.fromBytes(file), None, None)) 

和相应的错误是:

expected: Source[ByteString, _] actual: Source 

我在想,如何将我的数组[字节]转换为适当的格式以便在响应中进行流式传输,以及选择分块和sendEntity方法有哪些好处。谢谢!

回答

0
val file: Array[Byte] = ??? 
Ok.sendEntity(HttpEntity.Strict(ByteString(file), None)) 

如果您的数据足够小,可用于您的RAM,则使用Ok.sendEntity。但是,如果它很大,那么你应该把它存储在你的硬盘上,然后用小碎片(块)把它们发送给用户,并用Ok.chunked

+0

感谢它也帮助了我 –