播放 FrameWork / scala - return 来自 Array[Byte] 的流式响应
Play FrameWork / scala - return a streamed response from an Array[Byte]
我是 Play 的新手,正在尝试将数组 [Byte] 流式传输回用户。我一直在
阅读有关这方面的文档
https://www.playframework.com/documentation/2.5.x/ScalaStream
但是当我实现这个时,它说 chunked 已经被弃用,我应该使用 chunked 和 Akka 流源。目前我有
Ok.chunked(Source.fromBytes(file))
其中文件是 Array[Byte] 但错误是:
Expected: Source[NotInferredC, _], actual: Source
收到此错误后,我更深入地尝试获得不同的解决方案,然后尝试在我拥有的地方创建流式实体:
Ok.sendEntity(HttpEntity.Streamed(Source.fromBytes(file), None, None))
对应的错误是:
expected: Source[ByteString, _] actual: Source
我想知道如何将我的 Array[Byte] 转换为适当的格式以在响应中流式传输,另外,选择分块方法与 sendEntity 方法有什么好处。谢谢!
val file: Array[Byte] = ???
Ok.sendEntity(HttpEntity.Strict(ByteString(file), None))
如果您的数据对于您的 RAM 来说足够小,请使用 Ok.sendEntity
。但是如果它很大,那么你应该把它存储在你的硬盘上,把它分成小块(块),然后用 Ok.chunked
.
将它们发送给用户
我是 Play 的新手,正在尝试将数组 [Byte] 流式传输回用户。我一直在
阅读有关这方面的文档https://www.playframework.com/documentation/2.5.x/ScalaStream
但是当我实现这个时,它说 chunked 已经被弃用,我应该使用 chunked 和 Akka 流源。目前我有
Ok.chunked(Source.fromBytes(file))
其中文件是 Array[Byte] 但错误是:
Expected: Source[NotInferredC, _], actual: Source
收到此错误后,我更深入地尝试获得不同的解决方案,然后尝试在我拥有的地方创建流式实体:
Ok.sendEntity(HttpEntity.Streamed(Source.fromBytes(file), None, None))
对应的错误是:
expected: Source[ByteString, _] actual: Source
我想知道如何将我的 Array[Byte] 转换为适当的格式以在响应中流式传输,另外,选择分块方法与 sendEntity 方法有什么好处。谢谢!
val file: Array[Byte] = ???
Ok.sendEntity(HttpEntity.Strict(ByteString(file), None))
如果您的数据对于您的 RAM 来说足够小,请使用 Ok.sendEntity
。但是如果它很大,那么你应该把它存储在你的硬盘上,把它分成小块(块),然后用 Ok.chunked
.