如何有效地重命名GCS中的大量斑点

问题描述 投票:0回答:3

假设在 Google Cloud Storage 上我有一个存储桶:bucket1,在这个存储桶内我有数千个 blob,我想以这种方式重命名:

原始斑点存储桶1/子文件夹1/子文件夹2/数据文件名.csv

bucket1/子文件夹1/子文件夹2/data_filename/data_filename_backup.csv

subfolder1
subfolder2
data_filename.csv
- 它们可以有不同的名称,但是更改所有斑点名称的方法如上所述。

最有效的方法是什么?我可以使用 Python 来实现吗?

python google-cloud-platform google-cloud-storage gsutil
3个回答
1
投票

您可以使用任何您想要的编程语言,Google 提供了用于使用云存储的 SDK。您选择的任何特定语言都不会有太大优势。

实际上并没有一种“有效”的方法来做到这一点。您最终在代码中所做的事情是非常标准的:

  1. 列出您要重命名的对象
  2. 迭代该列表。
  3. 对于每个对象,更改名称

如果您在 Google Cloud Shell 或与您的存储桶位于同一区域的其他 Google Cloud 计算环境中运行代码,您将获得更好的整体性能。


0
投票

如果您要执行大量重命名,我建议同时执行该操作(使用多个线程,而不是顺序执行重命名)。

确实,您必须了解云存储的工作原理。

rename
不存在。您可以进入 Python 库,看看做了什么:
copy
然后
delete

如果您的文件很大,复制可能需要一些时间。删除速度还是蛮快的但在这两种情况下,它都是 API 调用,并且需要时间(如果您在同一区域,大约需要 50 毫秒)。

如果您可以同时执行200或500个操作,您将显着减少处理时间。使用 Go 或 Node 更容易,但您可以使用

await
关键字在 Python 中执行相同的操作。


0
投票

有人可以为此发送Python逻辑吗

© www.soinside.com 2019 - 2024. All rights reserved.