当我上传或下载大文件并且持续时间超过一小时时,上传/下载会在一小时后中断并显示以下错误消息:
Google.GoogleApiException: Google.Apis.Requests.RequestError
Invalid Credentials [401]
Errors [
Message[Invalid Credentials] Location[Authorization - header] Reason[authError] Domain[global]
]
我是否使用Web授权或服务帐户授权进行此操作没有区别。
我不确定它是否与AuthToken过期有关,因为如果我上传较小的文件,那么我可以上传许多文件,并且一小时后不会中断。对于小文件,一切都运行顺利,并且工作很长时间。
看起来类似的问题被描述为here,但该问题尚未得到解答。
我的代码如下:
DriveService service;
// ....
FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, mimeType);
request.Upload();
答案 0 :(得分:2)
问题出在Google云端硬盘端点上,无法在您的代码中修复。
有些人于2013年1月13日提交了an issue about this,并且超过一年过去了,Google似乎没有关于此的更新,其他人仍然遇到了这个问题。
这是后端的问题,而不是API或代码。正如您所推断的,如果上传过长,则access_token到期,此时无法继续恢复上传。目前正在努力解决此问题,我将在服务器端解决问题后更新此错误。
这是关于这个问题的another report。
答案 1 :(得分:1)
这是跟踪它的真正问题:Issue 5700 GData API。
截至4月30日,Google工程师的答案是:
感谢大家的耐心 - 我告诉我们现在应该在生产中修复潜在的问题。只要OAuth 2访问令牌在上载开始时有效,上传就应该成功完成。在上传过程中到期的访问令牌将不再导致HTTP 401响应。
如果您仍然遇到任何问题,请告诉我们。我将保持此错误,直到我可以从您的反馈中确认它已在您的应用程序中得到解决。
显然问题仍然存在,所以如果您遇到问题,请对问题5700发表评论。