在存储中查找 HTTP 批处理的使用 api

Find usage of HTTP Batch in storage api

我收到 Google JSON-RPC and Global HTTP Batch Endpoints are deprecated 的通知。在我的例子中,受影响的 api 是 "storage@v1" 和 "Global Batch Endpoints"。

我试图找到 depricated api 调用的来源。但我正在使用 24 个存储桶和多个访问它的工具。那么有没有办法记录 depricated 调用?我启用了 logging for buckets。在进行批量请求和进行单个请求时,我在访问日志中找不到任何差异。

是 "Batching across multiple APIs in a single request" 正在停产 Discontinuing support for JSON-RPC and Global HTTP Batch Endpoints

但令人难以理解的是,究竟是什么被停产了。

有两个批处理端点。全球一 www.googleapis.com/batch 而 API 具体的 www.googleapis.com/batch/<api>/<version>.

所以发生了什么变化?

全局批处理端点正在关闭。这意味着您将无法再调用 www.googleapis.com/batch。如果您同时发出混合两个 api 的批请求,例如 Drive 和 Gmail,那么在更糟糕的情况下,这到底意味着什么,您将无法再这样做了。

将来您将不得不按 API 拆分批处理请求。

这对你有影响吗?

代码方面,这取决于您当前使用的客户端库。其中一些已经更新为使用单个 api 端点(JavaScript 和 .net)还有一些尚未更新(php 和 java 最后我检查了)

现在关于你的桶,如果我理解正确的话,它们都会插入同一个地方,所以你使用相同的 api 这可能会对你产生影响。您还在使用 Googles SDK,他们会保持更新。

博客 post 非常令人困惑,现在有一些内部电子邮件在 Google 周围传播,试图弄清楚这对开发人员意味着什么。

您必须找到直接或通过代码中的库执行异构批处理请求的位置。在任何情况下,批处理请求都不会反映在您的存储桶日志中,因为没有 API 或 API 方法本身被弃用,只是一种调用发送它们的方式。

详细

您可以将针对不同 API 的多个请求捆绑到一个批处理请求中。该批次将被发送到一个 magical Google 服务器,该服务器将批次拆分并将其中的所有 API 请求路由到各自的服务中。

此 Google 服务器将被删除,因此所有内容都必须直接发送到该服务。

你该怎么办?

我看起来像是在进行 异构 批处理请求,因为只提到了一项服务,即存储。也许你应该做这些选择之一。

  • 如果您正在使用云库 -> 更新它们。

  • 查找是否访问URL下方

www.googleapis.com/batch

并将其替换为适当的 homogeneous batch API,在您的情况下是

www.googleapis.com/batch/storage/v1
  • 如果您使用 batchPath,这似乎是一篇 relevant 文章

否则,如果您使用 gapi 进行异构调用(这似乎不是您的情况),请像​​这样拆分:

 request1 = gapi.client.urlshortener(...)
 request2 = gapi.client.storage.buckets.update(...)
 request3 = gapi.client.storage.buckets.update(...)

 heterogeneousBatchRequest = gapi.client.newBatch();
 heterogeneousBatchRequest.add(request1);
 heterogeneousBatchRequest.add(request2);  
 heterogeneousBatchRequest.add(request3);  

变成这样

 request1 = gapi.client.urlshortener(...)
 urlshortnerbatch = gapi.client.newBatch();
 urlshortnerbatch.add(request1);

 request2 = gapi.client.storage.buckets.update(...)
 request3 = gapi.client.storage.buckets.update(...)
 storagebatch.add(request2);  
 storagebatch.add(request3);  

官方文档

Here描述了如何使用 Storage 进行批量请求 API。