尝试使用可恢复的上传协议,Dailymotion api 正在返回一个409
状态以响应上传第二个片段并出现此错误:
upload session already in use
根据DM api 文档,我在返回的上传 url 中/upload
替换为so is become 。/rupload
https://api.dailymotion.com/file/upload
https://upload-02.nyc.dailymotion.com/upload?uuid=<uuid>&seal=<seal>&extra=<user_id>
https://upload-02.nyc.dailymotion.com/rupload?uuid=<uuid>&seal=<seal>&extra=<user_id>
在对上传 url 的第一个请求中,我发送了上传的第一块。按照api docs 引用的示例,我的第一个请求的标头如下(使用 5242880 字节块进行测试):
"Session-ID": {"<uuid_from_the_upload_url>"},
"Content-Type": {"application/octet-stream"},
"Content-Disposition": {"attachment; filename=\"test_video.mov\""},
"X-Content-Range": {"bytes 0-5242879/18326960"},
"Content-Length": {"5242880"},
并且来自 Dailymotion API 的响应意外地发送了一个200
状态(而不是201
)和一个Range
标头列表5242880
作为总数。它还在正文中返回一个 URL,用作下一步创建视频的 URL 。以下是对第一个请求的响应的标头:
"Access-Control-Max-Age": {"86400"},
"Range": {"0-5242879/5242880"},
"Server": {"xupload/4.0.10"},
"Date": {"Sun, 11 Jul 2021 17:46:14 GMT"},
"Content-Length": {"647"},
"Access-Control-Allow-Headers": {"Content-Type, Content-Range, Content-Disposition, Session-Id"},
"Access-Control-Allow-Methods": {"HEAD, GET, POST, DELETE"},
"Access-Control-Allow-Origin": {"*"},
"Access-Control-Expose-Headers": {"Range"},
"Content-Type": {"application/json"},
我发送的第二个请求包含以下标头(以及正文中的第二个视频块):
"Session-ID": {"<uuid_from_the_upload_url>"},
"Content-Type": {"application/octet-stream"},
"Content-Disposition": {"attachment; filename=\"test_video.mov\""},
"X-Content-Range": {"bytes 5242880-10485759/18326960"},
"Content-Length": {"5242880"},
在这个回复中我得到了409
错误。以下是响应的标头和正文:
"Date": {"Sun, 11 Jul 2021 17:47:32 GMT"},
"Access-Control-Allow-Methods": {"HEAD, GET, POST, DELETE"},
"Access-Control-Expose-Headers": {"Range"},
"Access-Control-Max-Age": {"86400"},
"Content-Type": {"application/json"},
"Server": {"xupload/4.0.10"},
"Content-Length": {"83"},
"Access-Control-Allow-Headers": {"Content-Type, Content-Range, Content-Disposition, Session-Id"},
"Access-Control-Allow-Origin": {"*"},
{ error: "upload session already in use" }
对于Session-ID
标题,我使用的是上传 url 中返回的 uuid,因为我认为可以安全地假设它应该是唯一的这个视频/上传。但是,为了确保这不是这里的问题,我还尝试生成一个ObjectID用于所有上传请求。
对第一个请求的奇怪响应让我觉得我在该请求中遗漏了一些东西,但我在 Dailymotion API 文档或可恢复上传规范中找不到任何其他内容,因此将不胜感激!