情况:我有一大组视频和图像以及小型Play应用程序,这些应用程序在DB中存储对Blob的引用。对于网络使用,这是可以的,我正在渲染页面,在那里我放置Flowplayer,在它的配置中,我使用直接blob的路径作为源视频。无论如何,我被要求为其他旧设备提供额外的可能性,这些设备应该直接在响应体中发送带有标题的文件:
Content-Type:video/mp4
Content-disposition:inline
Content-Transfer-Encoding:binary
最初,该解决方案是使用PHP脚本完成的,该脚本使用CURL将blob提取到服务器,并作为响应返回到具有操作标头的客户端。
问题:用Play做这项工作的最佳方式是什么?(最好不将文件下载到服务器)。Blob将是公共的,所以我不需要关心隐藏原始路径,我只需要添加上面提到的头。
- 我应该使用
WS.url()
将文件提取到服务器,并将其作为具有修改的头的Result
发送吗?我尝试过这个,但是WS
超时时出现了一些问题 - 我还尝试设置头
Content-Location:http//mystorage...
,因为我知道它无论如何都需要响应体中的文件。所以,也许还有其他一些只使用头的技术 - 有什么方法可以在返回直接blob时强制自定义标头(即在GET参数中设置它)
也许是另一种方法?
我用第1种方法解决了我的问题,但使用了java.net.URL
而不是WS.url()
,
对于更好的提议(尤其是在不将文件下载到服务器的情况下),赏金承诺是实际的。