【问题标题】:Playframework 2.3.x: Upload videos and large files using rest Web-Services with ScalaPlayframework 2.3.x:使用带有 Scala 的 REST Web 服务上传视频和大文件
【发布时间】:2015-03-17 17:45:32
【问题描述】:

我正在使用 Play-Framework 和 Scala 来创建示例应用程序。我正在创建一个rest-full 网络服务供客户端访问应用程序。现在我的主要挑战是How to upload videos using web-services in Play-Framework。在播放文档中,他们只讨论文件上传。我以前从未体验过使用rest-web-services 上传视频。请指导我,我从哪里开始?

【问题讨论】:

  • 好吧,如果它是一个文件,您可以像文档中讨论的任何其他内容一样上传。确保使用多部分,因为它缓存到磁盘。如果您打算将视频流式传输到服务器,则需要 REST 服务以外的其他服务。
  • 你好@AleksandarStojadinovic,我的主要任务是使用网络服务上传视频。我如何在网络服务中映射视频参数?

标签: web-services scala rest playframework-2.3


【解决方案1】:

所以...您想使用 Rest-full 界面上传视频。嗯......你似乎还没有理解休息的概念。我感觉你目前认为 JSON 是 Rest-full 接口的一个组成部分。并且实际上正在尝试创建一个使用JSON 对话的Rest-full 接口。

可以提供一个Restful接口来上传图片等较小的文件(通过byte64对其进行编码)。由于视频可能相当大,因此在这种情况下不应使用此方法。

不过,我仍然可以为您指明正确的方向之一。

人们做的其中一种方式是循序渐进。

  1. 所以...首先您希望您的网络服务知道您要上传视频。这可以是一个完整的端点,比如说yourwebservice/upload。现在的诀窍是将有关您上传的所有元数据发送到此端点,但不要发送实际视频。

  2. 实际上传将由另一个端点处理,比如说yourwebservice/uploadActual,它可能是非静态的(我的意思是非 JSON)并且应该期望多部分形式的数据。

  3. 现在,在收到此请求后,您的 yourwebservice/upload 端点应该做好所有上传准备工作(创建文件夹等)。现在,它将生成一个 UUID,保存这个 UUID 对应于当前上传请求的事实,并返回一个响应,告诉您请上传到yourwebservice/uploadActual/UUID

  4. 现在,只需使用任何标准方法将您的文件作为多部分形式的数据上传到yourwebservice/uploadActual/UUID

  5. 通过查看 UUID,您的 Web 服务将知道该上传文件对应于该上传请求。

还有其他方法可以实现这一点,但我认为这应该可以为您提供一些帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 2013-06-17
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    相关资源
    最近更新 更多