是否可以使用gsutil(或其他一些工具)在Google云存储上批量重命名对象?我正在尝试找出一种将一堆图像从* .JPG重命名为* .jpg的方法。
https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames
gsutil支持URI通配符
编辑
作为bucket子目录支持的一部分,我们更改了*通配符以仅匹配目录边界,并引入了新的**通配符...
您是否在存储桶下有目录?如果是这样,也许您需要进入每个目录或使用**。
gsutil -m mv gs://my_bucket/**.JPG gs://my_bucket/**.jpg
或
gsutil -m mv gs://my_bucket/mydir/*.JPG gs://my_bucket/mydir/*.jpg
编辑到目前为止,gsutil不支持目标通配符(截至2014年4月12日)下位API。
因此,您现在需要检索所有JPG文件的列表,并重命名每个文件。
python示例:
import subprocess
files = subprocess.check_output("gsutil ls gs://my_bucket/*.JPG",shell=True)
files = files.split("\n")[:-1]
for f in files:
subprocess.call("gsutil mv %s %s"%(f,f[:-3]+"jpg"),shell=True)
请注意,这将需要几个小时。
这是一个旧主题,但我写了一篇博客文章,介绍如何使用python在GC中批量重命名文件。它使用多处理功能以块的形式执行MV。 Mass Rename Files In Gcloud With GSUTIL Multiprocessing Parallel