0
我在谷歌云平台上有一个存储桶。文件夹中的所有文件。我想该文件夹中的所有这些文件移动到根,即:将Google云平台中的目录移动到根目录
目前: /文件夹/ [文件和文件夹]
我想: /[文件和文件夹]
哪有我用gsutil做这个吗?
我在谷歌云平台上有一个存储桶。文件夹中的所有文件。我想该文件夹中的所有这些文件移动到根,即:将Google云平台中的目录移动到根目录
目前: /文件夹/ [文件和文件夹]
我想: /[文件和文件夹]
哪有我用gsutil做这个吗?
我不认为有一种巧妙的方法可以快速完成此操作(请参阅:使用一个gsutil命令),但是您可以遍历存储桶内容的列表并为每个条目运行gsutil mv
命令,如Bash示例如下:
$ # We have a lot of stuff in "folder1".
$ BUCKET=mybucket
$ gsutil ls gs://$BUCKET/**
gs://mybucket/folder1/subfolder/testfile.txt
gs://mybucket/folder1/testfile space.txt
gs://mybucket/folder1/testfile.txt
gs://mybucket/folder1/testfile2.txt
# Move it all to the root of the bucket!
# This approach accounts for spaces in object names.
$ FOLDERNAME="folder1"
$ gsutil ls "gs://$BUCKET/$FOLDERNAME/**" | while read objpath; do
newpath="$(echo $objpath | sed "s#$FOLDERNAME/##")"
gsutil mv "$objpath" "$newpath"
done
[...]
# And verify the results:
$ gsutil ls gs://$BUCKET/**
gs://mybucket/subfolder/testfile.txt
gs://mybucket/testfile space.txt
gs://mybucket/testfile.txt
gs://mybucket/testfile2.txt
注意执行的gsutil,一个顺序执行每个MV操作,是相当缓慢的,如果你有大量的对象。我发现使用这个脚本时,移动了15个对象花了我38秒(大约每个对象约2.5s)。