批量重命名 Google Cloud Storage 上的对象

jos*_*unt 8 google-app-engine google-cloud-storage gsutil

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

小智 8

这是在 bash 中执行此操作的本机方法,并在下面逐行代码解释:

gsutil ls gs://bucket_name/*.JPG > src-rename-list.txt
sed 's/\.JPG/\.jpg/g' src-rename-list.txt > dest-rename-list.txt
paste -d ' ' src-rename-list.txt dest-rename-list.txt | sed -e 's/^/gsutil\ mv\ /' | while read line; do bash -c "$line"; done
rm src-rename-list.txt; rm dest-rename-list.txt
Run Code Online (Sandbox Code Playgroud)

该解决方案推送 2 个列表,一个用于源文件,一个用于目标文件(用于“gsutil mv”命令):

gsutil ls gs://bucket_name/*.JPG > src-rename-list.txt
sed 's/\.JPG/\.jpg/g' src-rename-list.txt > dest-rename-list.txt
Run Code Online (Sandbox Code Playgroud)

使用以下代码将“gsutil mv”行和两个文件逐行连接起来:

paste -d ' ' src-rename-list.txt dest-rename-list.txt | sed -e 's/^/gsutil\ mv\ /'
Run Code Online (Sandbox Code Playgroud)

然后在 while 循环中运行每一行: while read line; 做 bash -c "$line"; 完毕

最后,清理并删除创建的文件:

rm src-rename-list.txt; rm dest-rename-list.txt
Run Code Online (Sandbox Code Playgroud)

以上已针对有效的 Google Storage 存储桶进行了测试。