Google Drive API 1.8.1 - 大文件上传/下载问题

时间:2014-05-16 13:34:24

标签: google-api google-oauth google-api-dotnet-client

当我上传或下载大文件并且持续时间超过一小时时,上传/下载会在一小时后中断并显示以下错误消息:

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();

2 个答案:

答案 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发表评论。