尽管视频已成功上传,但从可恢复上传API(v2)获得503响应

时间:2013-05-11 07:34:34

标签: youtube-api

当我从我的网站上传了一个150M的视频时,我遇到了这个问题,即: 我收到了503响应,而不是来自youtube的201响应,但视频已经上传到youtube,因为我可以在我的YouTube页面上看到它。

我在apis中使用: https://developers.google.com/youtube/2.0/developers_guide_protocol_resumable_uploads

有人能告诉我发生了什么事吗? 我该怎么办?

非常感谢!

1 个答案:

答案 0 :(得分:0)

使用可恢复上传时遇到同样的问题。如果我不澄清请求标题中的Content-Range,我甚至可以上传大小为550MB的文件。但是,如果我将文件切割成不同的块并通过不同的请求上传它们,并设置Content-Range标头。然后它会以相同的错误消息503结束。

我对答案的猜测是标题变量Content-Length。 Google期望Content-Length是Total-Content-length的剩余大小。并且所有浏览器都将该值修改为您发送的数据的实际大小。

例如,如果要在3个块中发送3个字节的数据,则每个块为1个字节。在第一个块中,将Content-Length设置为3(剩余大小)。但是浏览器将其修改为1,这使得Google只剩下1个字节,并且在发送第1个块之后,服务关闭,您不能再将任何数据发送到该特定的上传URL,因此错误代码503是回。

所以我想更好的解决方案是让Google使用其他标头变量而不是Content-Length。或者一个小技巧是使用仍然可恢复的上传方法,但不将文件切割成部分,并且在请求中没有Content-Range标头设置。在上传的同时,我们可以通过Google Doc描述的特定方式调用相同的UPLOAD_URL来查看状态。至少我已成功上传了550MB文件。