在许多成功的文件更新之后,有一个更新,其中返回的文件ID是驱动器:v1而不是有效的文件ID。此外,根据App Engine日志,有问题的请求需要10秒钟(通常不到一秒钟),而不是因为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有时在更新后确实发生了变化,否则更改此内容可能是个好主意。
答案 0 :(得分:0)
我试过了,但我无法重现这一点。有没有办法可以获得定期复制它的样本?
另外,感谢您提出有关评论的问题,我现在会更新。