【发布时间】:2016-03-18 21:07:06
【问题描述】:
我们已经运行了一年多的服务,该服务使用 API v3 Upload(使用 .NET 库 Google.Apis.YouTube.v3)将视频上传到 YouTube。
在过去的两天里,我们突然开始在上传过程中出现所有上传失败的情况,YouTube 返回错误“任务已取消”。这些视频部分上传到 YouTube,它们正在经历不同的进展(有些只有几 MB,有些则高达 17-20MB,尽管似乎较大的进度出现在较早的失败列表中)。
这首先发生在周五晚上,我能够在周六早上顺利推送所有失败的视频,但随后在周六早上再次开始,并且从那时起,周六下午和晚上的所有视频都失败了。我们谈论的视频总共有 25 个左右,而不是数百个。这些视频的大小都在 40MB 左右。
一次通常只会上传 2-3 个视频。虽然我在周六早上成功地将它们全部推高,但实际上我一次推高了大约 4-5 个。
其他人能否提出可能的原因或任何故障排除提示?否则,我们没有看到任何服务器连接问题,并且在该服务器上运行的网站没有任何明显的问题。除了来自 YouTube 的“A task was cancelled”错误之外,我看不到任何其他错误返回,并且在该错误之前,上传者的进度是成功的。
编辑:我还能够在我的开发环境中运行我们的一个上传文件来重现此问题。我刚刚尝试获取一组全新的 API 凭据(实际上是针对不同的 YouTube 帐户),刷新了 oAuth 令牌,但仍然遇到同样的问题。
【问题讨论】:
-
我的应用程序的几个客户来自世界各地。我没有更改任何代码,但我在最近的版本中更新了 API。我可以在我的开发机器上重现该问题,但我还没有开始调查,只是发现它来自于进度更改事件中的 API,而不是我的代码。
-
我想我已经确定了问题所在。增加 YouTubeService.HttpClient.Timeout 有望为我修复它。默认值为 1 分 40 秒。目前似乎将其提高到 10 分钟。我会让它用户可调。从 API 返回的异常是“任务取消异常”,就像用户为我取消上传一样,所以我需要以某种方式解决这个问题。
-
您,先生,是个传奇!我已经到了每天早上只使用变通方法来运行上传的地步(当它在 95% 的时间内工作时)。因此,听起来好像 YouTube 服务器可能需要比平时更长的时间来响应上传,因此出现了问题(显然在一天中的某些时间它比其他时间更忙,因此它通常在早上工作)。您是否在使用 .NET 库,如果是,您在哪里设置此超时?你介意分享它吗(也许作为一个答案,因为如果它有效,我会想把它标记为答案)?谢谢!
-
您是否发现超时更改解决了您的问题?如果是这样,您介意分享您的解决方案吗?我一直在努力让它工作,因为使用异步方法似乎不会将更改持续到超时值。
-
有人可以分享在哪里更改超时吗?我不知道。 @米克
标签: file-upload youtube youtube-data-api