[Google Cloud Storage上的大量重命名对象

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

是否可以使用gsutil(或其他一些工具)在Google云存储上批量重命名对象?我正在尝试找出一种将一堆图像从* .JPG重命名为* .jpg的方法。

google-app-engine google-cloud-storage gsutil
3个回答
4
投票

https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames

gsutil支持URI通配符

编辑

gsutil 3.0 release note

作为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)

请注意,这将需要几个小时。


0
投票

0
投票

这是一个旧主题,但我写了一篇博客文章,介绍如何使用python在GC中批量重命名文件。它使用多处理功能以块的形式执行MV。 Mass Rename Files In Gcloud With GSUTIL Multiprocessing Parallel

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