似乎一夜之间,Google Drive API方法文件()。补丁(,)。execute()已停止工作并引发异常。如果您“尝试”,Google的参考页面https://developers.google.com/drive/v2/reference/files/patch也可以观察到此问题。
异常响应是:
500 Internal Server Error
cache-control: private, max-age=0
content-encoding: gzip
content-length: 162
content-type: application/json; charset=UTF-8
date: Thu, 22 Aug 2013 12:32:06 GMT
expires: Thu, 22 Aug 2013 12:32:06 GMT
server: GSE
{
"error": {
"errors": [
{
"domain": "global",
"reason": "conditionNotMet",
"message": "Precondition Failed",
"locationType": "header",
"location": "If-Match"
}
],
"code": 500,
"message": "Precondition Failed"
}
}
这确实影响了我们的应用程序。
答案 0 :(得分:2)
我们也遇到了这种情况。快速修复解决方案是添加此标头:If-Match: *
(理想情况下,您应该使用实体的etag,但现在可能没有解决冲突的逻辑)。
Google Developers,如果您计划部署重大更改,请与我们联系。
答案 1 :(得分:2)
在过去24小时的某个时间看起来,Files.Patch问题已经回归到8月22日的工作方式。 每当我们尝试修补文件的LastModified时间戳时,我们也遇到了这个问题 - 请参阅下面的日志文件摘录:
20130826 13:30:45 - GoogleApiRequestException: retry number 0 for file patch of File/Folder Id 0B9NKEGPbg7KfdXc1cVRBaUxqaVk
20130826 13:31:05 - ***** GoogleApiRequestException: Inner exception: 'System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at Google.Apis.Requests.Request.InternalEndExecuteRequest(IAsyncResult asyncResult) in c:\code.google.com\google-api-dotnet-client\default_release\Tools\BuildRelease\bin\Debug\output\default\Src\GoogleApis\Apis\Requests\Request.cs:line 311', Exception: 'Google.Apis.Requests.RequestError
Precondition Failed [500]
Errors [
Message[Precondition Failed] Location[If-Match - header] Reason[conditionNotMet] Domain[global]
]
'
20130826 13:31:07 - ***** Patch file request failed after 0 tries for File/Folder 0B9NKEGPbg7KfdXc1cVRBaUxqaVk
今天运行相同的进程只要修补文件时间戳,就像8月22日之前一样。
由于这个4/5天的故障,我们现在有数百个(可能是数千个)错误时间戳的文件。
我知道API是测试版,但是,请Google开发人员“让我们提前了解任何'试验性修复'”,并至少在此论坛发帖以确认问题,以节省我们在我们的工作中找到错误的时间用户程序。
答案 2 :(得分:1)
此处重复Getting 500: Precondition Failed when Patching a folder. Why?
我回想一下开发视频中的一条评论说“使用Update而不是Patch,因为它内部的服务器往返少一个”。我从中推断Patch检查etags但Update没有。我已经将我的代码更改为使用Update代替Patch,因此问题没有再次出现。
喜欢发展移动目标; - )