我正在开发一个简单的JSON API,允许用户将短片段编码成不同的格式。
我现在正在努力解决的问题是如何在编码完成后发送响应?假设平均编码需要1分钟。因此,保持连接1分钟只是为了发送带编码电影URL的响应是没有意义的。
客户端使用要编码的影片剪辑的URL发送JSON。服务器发送响应“ok dude,hold on a sec”并结束连接。
我想到的一种方法是强制客户端提供回调网址。编码过程完成后,我的API可以将JSON发布到该URL,并准备下载编码电影的地址。
您知道这种情况的其他方法吗?我对这个回调网址并不太相信。
答案 0 :(得分:0)
我将如何做到这一点。我会使用3个URI:一个众所周知的固定URI用于上传原始视频,一个临时URI用于监控进度,另一个临时URI用于下载转换后的视频。我会返回一个content-Location标头来指示客户端下一步的位置:
POST / converter?output = AVI
HTTP / 1.1 201已创建
内容 - 位置:/ converter / process / 12345
GET / converter / process / 12345
HTTP / 1.1 200确定
X-转换器状态:转换
GET / converter / process / 12335
HTTP / 1.1 200确定
X转换状态:完成
内容 - 位置:/converter/downloads/12345/myvideofile.avi
获取/converter/downloads/12345/myvideofile.avi
HTTP / 1.1 200确定
我会在一段时间后自动清理临时资源。