1

我正在测试使用 Drive API v2 的应用程序,我注意到我没有在 PATCH 请求的响应中获得新的 ETag。

我使用 Google APIs Explorer 做了一些测试。这是补丁请求:

PATCH https://www.googleapis.com/drive/v2/files/0B-TenPiSMBplMTJnVlYxTEEwQ28?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer ...
X-JavaScript-User-Agent:  Google APIs Explorer

{
  "title": "file.tmp"
}

这是显示 ETag 的 PATCH 响应的开始"EBHN0a_u6Vh64YcTBDNdNyfF7Hs/MTM4MTI2MTIxODY0MQ"

200 OK

Cache-Control:  no-cache, no-store, max-age=0, must-revalidate
Content-Encoding:  gzip
Content-Length:  1019
Content-Type:  application/json; charset=UTF-8
Date:  Tue, 08 Oct 2013 19:46:36 GMT
Etag:  "EBHN0a_u6Vh64YcTBDNdNyfF7Hs/MTM4MTI2MTIxODY0MQ"
Expires:  Fri, 01 Jan 1990 00:00:00 GMT
Pragma:  no-cache
Server:  GSE

{
  "kind": "drive#file",
  "id": "0B-TenPiSMBplMTJnVlYxTEEwQ28",
  "etag": "\"EBHN0a_u6Vh64YcTBDNdNyfF7Hs/MTM4MTI2MTIxODY0MQ\"",
  "selfLink": "https://content.googleapis.com/drive/v2/files/0B-TenPiSMBplMTJnVlYxTEEwQ28",
  "webContentLink": "https://docs.google.com/uc?id=0B-TenPiSMBplMTJnVlYxTEEwQ28&export=download",
  "alternateLink": "https://docs.google.com/file/d/0B-TenPiSMBplMTJnVlYxTEEwQ28/edit?usp=drivesdk",
  "iconLink": "https://ssl.gstatic.com/docs/doclist/images/icon_10_generic_list.png",
  "title": "file.tmp",

但是,如果我在 PATCH 之后执行 GET 请求:

GET https://www.googleapis.com/drive/v2/files/0B-TenPiSMBplMTJnVlYxTEEwQ28?key={YOUR_API_KEY}

Authorization:  Bearer ...
X-JavaScript-User-Agent:  Google APIs Explorer

在响应中,我得到一个更新的 ETag ( "EBHN0a_u6Vh64YcTBDNdNyfF7Hs/MTM4MTI2MTU5NjAyNg"):

200 OK

Cache-Control:  private, max-age=0, must-revalidate, no-transform
Content-Encoding:  gzip
Content-Length:  1021
Content-Type:  application/json; charset=UTF-8
Date:  Tue, 08 Oct 2013 19:48:44 GMT
Etag:  "EBHN0a_u6Vh64YcTBDNdNyfF7Hs/MTM4MTI2MTU5NjAyNg"
Expires:  Tue, 08 Oct 2013 19:48:44 GMT
Server:  GSE

{
  "kind": "drive#file",
  "id": "0B-TenPiSMBplMTJnVlYxTEEwQ28",
  "etag": "\"EBHN0a_u6Vh64YcTBDNdNyfF7Hs/MTM4MTI2MTU5NjAyNg\"",
  "selfLink": "https://content.googleapis.com/drive/v2/files/0B-TenPiSMBplMTJnVlYxTEEwQ28",
  "webContentLink": "https://docs.google.com/uc?id=0B-TenPiSMBplMTJnVlYxTEEwQ28&export=download",
  "alternateLink": "https://docs.google.com/file/d/0B-TenPiSMBplMTJnVlYxTEEwQ28/edit?usp=drivesdk",
  "iconLink": "https://ssl.gstatic.com/docs/doclist/images/icon_10_generic_list.png",
  "title": "file.tmp",

这是预期的行为吗?我期待在 PATCH 响应中获得更新的 ETag,以避免再次往返服务器。另请注意,我使用 PUT 而不是 PATCH 遇到了相同的行为。

4

1 回答 1

1

可悲的是,Drive 在引擎盖下有点异步。在您的 PATCH 完成后,诸如 etags 和一些 URL 之类的东西会异步填充。

于 2013-10-09T03:08:59.050 回答