驱动器文件更新错误500

时间:2014-05-19 09:42:57

标签: objective-c google-drive-api

我的应用在appdata文件夹中保留了一些应用专用文件。但是当文件尝试重复更新Drive app数据中的文件时,会从Drive服务器反复获取内部错误。我使用Objective-c客户端来调用Drive API。 你能帮忙解决这些问题吗?至少给出一些建议,找出导致此错误的原因。

以下是记录的请求和响应:

drive.files.update (bytes 0-40318/40319)

2014-05-19 09:23:44 +0000
Request: PUT https://www.googleapis.com/upload/rpc?uploadType=resumable&prettyPrint=false&upload_id=AEnB2Uo8yrae46aQQ-HYEtQgmXt2qNppZmkBYnPa8iXF4L6xdNYaVij6u3xLTT5kRIeH1mbPUUfUuEDEvYoouZheVwwWT6iw_A
Request headers:
  Content-Length: 40319
  Content-Range: bytes 0-40318/40319
  Content-Type: binary/octet-stream
  User-Agent: com.mycompanyname.appname/1.4.0 google-api-objc-client/2.0 MacOSX/10.8.5 (gzip)

Request body: (40319 bytes)
<<40319 bytes>>

Response: status 200
Response headers:
  Alternate-Protocol: 443:quic
  Cache-Control: no-cache, no-store, max-age=0, must-revalidate
  Content-Length: 144
  Content-Type: application/json; charset=UTF-8
  Date: Mon, 19 May 2014 09:23:44 GMT
  Expires: Fri, 01 Jan 1990 00:00:00 GMT
  Pragma: no-cache
  Server: HTTP Upload Server Built on May 15 2014 11:06:48 (1400177208)

Response body: (144 bytes)
{
  "error" : {
    "message" : "Internal Error",
    "data" : [
      {
        "reason" : "internalError",
        "message" : "Internal Error",
        "domain" : "global"
      }
    ],
    "code" : 500
  },
  "id" : "gtl_20"
}

----------------------------------------------- ------------

更新
来自Jon Skeet

answer to this question提出的出色解决方法
  

我设法重现了这个问题。没有setNewRevision(false)它   工作 - 我意识到在所有情况下可能都不可行,但它是一个   目前为你提供合理的解决方法吗?

但是,我现在将暂停这样的解决方法。我们希望拥有setNewRevision(false),以防止更多地使用用户的数据存储空间 - http://developers.google.com/drive/v2/reference/files/update


1 个答案:

答案 0 :(得分:1)

此错误是由于文件的200个固定修订的未记录限制造成的。正如您所提到的,解决方法是要么不在上传时创建新版本,要么取消固定某些现有版本。