0
Google Cloud Platformにバケットがあります。フォルダ内のすべてのファイル。私は、ルートすなわちにフォルダ内のすべてのこれらのファイルを移動したい:グーグルクラウドプラットフォームのディレクトリをルートに移動
現在: /フォルダ/ [ファイルとフォルダ]
私が欲しい: /[ファイルやフォルダ]を
どのようにすることができます私はgsutilを使ってこれをしますか?
Google Cloud Platformにバケットがあります。フォルダ内のすべてのファイル。私は、ルートすなわちにフォルダ内のすべてのこれらのファイルを移動したい:グーグルクラウドプラットフォームのディレクトリをルートに移動
現在: /フォルダ/ [ファイルとフォルダ]
私が欲しい: /[ファイルやフォルダ]を
どのようにすることができます私はgsutilを使ってこれをしますか?
私は、これをすばやく行うための巧妙な方法はないと思う(1つのgsutilコマンドで読む)が、バケットの内容のリストをループし、各エントリに対してgsutil mv
コマンドを実行することができます以下の下:あなたが大量のオブジェクトを持っている場合
$ # 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
注各MV操作のためのgsutil、1の連続実行を行い、かなり遅いこと。このスクリプトを使用すると、15個のオブジェクトを移動するのに38秒かかることがわかりました(オブジェクトあたり約2.5秒)。