gpt4 book ai didi

google-app-engine - 多对象删除 在谷歌云存储去

转载 作者:IT王子 更新时间:2023-10-29 02:23:58 25 4
gpt4 key购买 nike

我正在使用 go 来与云存储进行交互。

我无法使用应用引擎中的 gsutil 并使用 rm 命令 删除?

我可以用 DeleteObject 删除一个对象或遍历一系列对象并删除每个对象,但我正在寻找另一种解决方案,例如 DeleteMulti在 Datastor 中。

你有更好的多删方案吗?

最佳答案

删除的每个对象都需要调用一次 GCS。遍历每个对象并调用 delete 是最简单且可能是最佳的解决方案。如果您需要更快的性能,您可能希望使用多个线程一次向 GCS 发送多个删除请求。

如果这对您的应用来说是一个严重的性能问题,那么还有另一种方法,我不愿提及,因为它会显着增加复杂性并且不会带来太多额外的性能。 GCS 支持将调用批处理到单个连接中。它可能不会比通过多个线程发送删除请求快多少,但它的行为更像是 DeleteMulti 调用。

实际上,批处理调用通过将多部分 HTTP 请求发送到/batch 路径来工作,每个部分代表一个 HTTP 调用。删除多个对象的请求如下所示:

POST /batch HTTP/1.1
Host: www.googleapis.com
Content-Length: content_length
Content-Type: multipart/mixed; boundary="===============7330845974216740156=="
Authorization: Bearer oauth2_token


--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+1>

DELETE /storage/v1/b/example-bucket/o/obj1 HTTP/1.1
accept: application/json


--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+2>

DELETE /storage/v1/b/example-bucket/o/obj2 HTTP/1.1
accept: application/json


--===============7330845974216740156==--

这里有更多文档:https://cloud.google.com/storage/docs/json_api/v1/how-tos/batch

但是,我再次建议只发送单独的删除请求。批处理调用不是原子的,这意味着某些删除可能会成功,而其他删除可能会失败。如果其中一个批量删除操作失败,您将需要解析批量响应消息以找出失败的调用,以便您可以重试,这很可能不值得为获得返回而付出努力.

关于google-app-engine - 多对象删除 在谷歌云存储去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30101669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com