1

Drive API v2 を使用するアプリケーションをテストしていますが、PATCH 要求の応答で新しい ETag を取得していないことに気付きました。

Google API Explorer を使用していくつかのテストを行いました。これは PATCH リクエストです。

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 を取得することを期待していました。また、PATCH の代わりに PUT を使用して同じ動作を経験したことにも注意してください。

4

1 に答える 1

1

悲しいことに、Drive は内部で多少非同期になっています。PATCH が完了した後、etags や一部の URL などは非同期に入力されます。

于 2013-10-09T03:08:59.050 に答える