首页 > 解决方案 > 409 上传会话已在使用 - Dailymotion 可恢复上传 api

问题描述

尝试使用可恢复的上传协议,Dailymotion api 正在返回一个409状态以响应上传第二个片段并出现此错误:

upload session already in use

根据DM api 文档,我在返回的上传 url 中/upload替换为so is become 。/ruploadhttps://api.dailymotion.com/file/uploadhttps://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 文档或可恢复上传规范中找不到任何其他内容,因此将不胜感激!

标签: uploaddailymotion-apiresume-uploadresumable

解决方案


推荐阅读