使用 Google Cloud Storage python 客户端进行批量请求

2024-03-08

我找不到任何有关如何使用 python 谷歌云存储的批处理功能的示例。我看到它存在here https://github.com/GoogleCloudPlatform/google-cloud-python/blob/master/storage/google/cloud/storage/batch.py.

我想要一个具体的例子。假设我想删除一堆具有给定前缀的 blob。我将开始获取 blob 列表,如下所示

from google.cloud import storage

storage_client = storage.Client()
bucket = storage_client.get_bucket('my_bucket_name')
blobs_to_delete = bucket.list_blobs(prefix="my/prefix/here")

# how do I delete the blobs in blobs_to_delete in a single batch?

# bonus: if I have more than 100 blobs to delete, handle the limitation
#        that a batch can only handle 100 operations

TL;DR- 只需发送范围内的所有请求batch()上下文管理器 https://google-cloud-python.readthedocs.io/en/latest/storage/client.html#google.cloud.storage.client.Client.batch(可在google-cloud-python图书馆)

试试这个例子:

from google.cloud import storage

storage_client = storage.Client()
bucket = storage_client.get_bucket('my_bucket_name')
# Accumulate the iterated results in a list prior to issuing
# batch within the context manager
blobs_to_delete = [blob for blob in bucket.list_blobs(prefix="my/prefix/here")]

# Use the batch context manager to delete all the blobs    
with storage_client.batch():
    for blob in blobs_to_delete:
        blob.delete()

如果您直接使用 REST API,则只需担心每批 100 个项目。这batch()上下文管理器 https://google-cloud-python.readthedocs.io/en/latest/storage/client.html#google.cloud.storage.client.Client.batch自动处理此限制,并在需要时发出多个批量请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Google Cloud Storage python 客户端进行批量请求 的相关文章

随机推荐

  • ubuntu中libusb.h和usb.h有什么区别?哪一个更好?

    我是 libusb c 编程的新手 我应该知道 libusb h 和 usb h 之间的区别吗 我已经在 Ubuntu xenial 中安装了它们 并带有 libusb 1 0 0 dev 和 libusb dev 包 哪一个更好 它们来自
  • 在 Android 10 / Android Q 上使用捆绑的 ttf 字体时发生崩溃

    当我将 Android 应用程序的目标级别从 28 更新到 29 Android 10 后 应用程序在 Pixel 3 使用 Android 10 上崩溃 使用的版本 Android Gradle 插件 3 5 0 摇篮5 5 1 问题 这
  • 新的 HTML5 Canvas API 支持

    我发现了几篇关于 HTML5 Canvas API 中新功能的帖子 例如路径基元或命中区域 目前的规范 4 8 11 似乎具有以下功能 http www whatwg org specs web apps current work mult
  • 仅加载适用于 ipad 的 css 文件

    我正在尝试加载仅适用于 ipad 的 css 文件 我试过这个 它适用于 iPad 但如果我在桌面上将分辨率降低到 1024 x 768 并在 Firefox 中查看该网站 ipad 样式表也会加载 所以我尝试 但仍然是同样的问题 我如
  • Express JS 路由中使用 formData 获取 POST 为空

    我有一个表单 它使用 fetch 到 AJAX 并在 NodeJS 上有一个路由 当 AJAX POST 命中路由时 req body 显示一个空对象 这是代码 在 app js 中 app use bodyParser json app
  • Web 服务一次只允许我获取 1000 行,但总数超过 30000

    我正在使用 Netsuite 提供的一些 Web 服务https system netsuite com help helpcenter en US Output Help SuiteFlex WebServices STP searchM
  • AWS Lambda:任务超时

    我的学校项目要求我们编写在 AWS Lambda 中运行的 Java 代码 它应该获取特定 URL 的源代码 然后将其上传到 S3 存储桶 Java 代码应在 AWS Lambda 上运行 我获取了 Java 中 String 变量的源代码
  • ElementTree的iterparse() XML解析错误

    我需要解析一个编码为 ISO 8859 1 的 1 2GB XML 文件 在阅读了 NET 上的几篇文章后 似乎 Python 的 ElementTree 的 iterparse 比 SAX 解析更受青睐 我写了一段非常短的代码只是为了测试
  • Selenium chrome 浏览器中的 Feign 焦点

    我正在使用 Selenium 从网站上抓取数据 该网站需要窗口焦点才能显示我需要的某些元素 我希望能够在后台运行我的程序 而不必在运行时聚焦窗口 有没有什么办法可以让网站认为它的重点是 我正在使用硒铬驱动程序 Edit 这是我构建的一个快速
  • Android是否阉割了ARM的Jazelle技术?

    我认为 Android 中的 Java 字节码 混蛋 的理由是性能 我怀疑还有另一个原因 但是 通过更改字节码 他们难道没有让 Jazelle 等硬件加速技术变得毫无意义 从而实际上降低了 Mobile Java 平台的可用性能吗 目标平台
  • 通过蓝牙传输文件,如 Android 蓝牙聊天示例

    如何使用 Android 蓝牙聊天示例并将其更改为文件传输 我想通过蓝牙将本地 SQLite 数据库传输到另一台 Android 设备 我更改了示例代码 http developer android com resources sample
  • 在多个文件之间共享枚举的正确方法是什么?

    我想在当前 C 项目的客户端和服务器部分使用相同的枚举 但不确定执行此操作的正确方法 我可以轻松地将枚举写入它自己的文件中 并将其包含在两个文件中 但这感觉像是不好的做法 将其放入命名空间然后将其包含在两者中是正确的方法吗 我知道这有点主观
  • 如何在 Django 模板上下文中获取“调试”变量?

    根据这个SO帖子 如何检查 django 模板中的 TEMPLATE DEBUG 标志 https stackoverflow com questions 1271631 how to check the template debug fl
  • 将 aSmack 0.8.3 用于 XMPP 聊天应用程序时出现 NoSuchAlgorithmException

    我已经包含了 logcat 输出 请帮我解决这个问题 08 09 11 06 32 762 警告 NetworkManagementSocketTagger 883 setKernelCountSet 10012 0 失败 错误号 2 08
  • 检测多个if语句中哪个条件为假

    我尝试缩短我的代码 因此我来缩短以下类型的 if 语句 a b c d needed to run if empty a echo a is empty elseif empty b echo b is empty elseif empty
  • 在 Prolog 中解答爱因斯坦之谜

    我正在尝试解决爱因斯坦之谜 https www wikiwand com en Zebra Puzzle在序言中 我在编写程序时遇到了困难 基本方法是添加所有约束并让 Prolog 找出唯一可能的解决方案 问题是 Prolog 找到了 0
  • html5视频预加载

    是否可以预加载 html 视频 注意 该标签是稍后动态创建的 目前 我可以通过创建一个隐藏的 div 并将所有图像放入其中来对图像执行此操作 然后当我稍后创建需求时 图像不需要重新加载 当使用视频标签完成此操作时 浏览器仍会在创建元素时从头
  • 从类库 .NET Core 3 中的非控制器类访问 ILogger

    我们正在将 NET Framework 应用程序 MVC 迁移到 NET Core 3 应用程序 MVC 我们有一个场景如下 流程1 由Controller实例化的类 流程 2 ClassX 由 ClassY 实例化 由 Class 实例化
  • Matlab - 缩放图像的颜色条

    我怎样才能扩展colorbar假彩色图像的轴 我读了这篇文章 并复制了代码 但似乎无法正常工作 MATLAB Colorbar 相同的颜色 缩放值 https stackoverflow com questions 45285114 mat
  • 使用 Google Cloud Storage python 客户端进行批量请求

    我找不到任何有关如何使用 python 谷歌云存储的批处理功能的示例 我看到它存在here https github com GoogleCloudPlatform google cloud python blob master stora