0

在多次成功的文件更新后,有一次更新返回的文件 id 是 drive:v1 而不是有效的文件 id。此外,根据 App Engine 日志,有问题的请求需要 10 秒(通常不到 1 秒),而不是因为 App Engine 实例启动时间非常奇怪。

我使用的代码基于 Google Drive SDK Python 示例应用程序 DrEdit,并且只做了一些修改(我添加了 Base64 编码,因为我传输的是微小的图像,而不是文本)。

更具体地说,在 ServiceHandler 类的 put 方法的示例代码中,这段代码应该在更新文件后返回文件 id:

# Respond with the new file id as JSON.
  self.RespondJSON(resource['id'])

这工作了很多次,但有一次它返回驱动器:v1。更新仍然正确地更改了文件,除了文件 id 问题之外,请求正常工作。

这是我对受此影响的示例代码部分所做的修改:

resource = service.files().update(
  id=data['resource_id'],
  newRevision=True,
  body=None,
  media_body=MediaInMemoryUpload(base64.b64decode(data.get('content', '')),
                                           data['mimeType']),
).execute()

顺便说一句,put 方法中的注释“使用新的文件 ID 作为 JSON 响应”使它看起来在更新文件后文件 ID 会更改,但似乎并非如此。这很令人困惑,除非文件 id 有时在更新后确实发生了变化,否则更改它可能是一个好主意。

4

1 回答 1

0

我试过了,但我无法重现这个。有什么方法可以让您定期复制它的样本?

另外,感谢您提出有关评论的问题,我现在会更新。

编辑:在http://code.google.com/p/google-drive-sdk-samples/source/detail?r=233b6db987f633ff34929247f9045feca7550688中更新了评论

于 2012-05-01T22:06:17.057 回答