はじめに
- 題名の通りですが、よく使用するgsutilコマンドをまとめました。
- 注意)gsutilコマンドを使用するには実行環境の構築が必要です。今回はgsutilコマンドを既に使用できる状態として話を進めますのでご注意ください。
gsutilコマンドとは?
- gsutilコマンドとは、GCS(Google Cloud Storage)をコマンドラインから操作できるPythonアプリケーションのこと
- 動作するのは、Linux、Unix、Mac OS、Windows(XP以降)
- gsutilをスタンドアロンとしてインストールした場合は、Windowsのみ事前にPython 2.7.xをインストールする必要がある。理由は、windowsにはデフォルトでPythonがインストールされいないため。また、Python 3.xでも動作しないため注意が必要
使用方法
- gsutilのバージョンを確認する場合
$ gsutil version
gsutil version: x.xx
- バケットの一覧を出力する場合
$ gsutil ls
gs://bucket_name1/
- バケット内のオブジェクト一覧を出力する場合
$ gsutil ls gs://bucket_name1/
gs://bucket_name1/file.txt
よく上記コマンドに「| wc -l」を付けてオブジェクトの数を確認したり、「| grep」で検索したりします。
- オブジェクトの内容を出力する場合
$ gsutil cat gs://bucket_name1/file.txt
aaa
bbb
- 新しくバケットを作成する場合
$ gsutil mb -c class -l location -p project_id gs://bucket_name2
Creating gs://bucket_name2/...
オプションを何も付けずに実行した場合、クラスがMulti-Regilnal、ローケーションがUSで作成されます。デフォルト値で作成されると困るのでオプションを付けて基本的には実行しています。-pについてはproject_idが複数なければ特に付けなくても大丈夫です。
- バケットを削除する場合
$ gsutil rb -r gs://bucket_name1
Removing gs://bucket_name1/...
-rを付けている理由は、バケットの中身が空ではない(オブジェクトが存在する)場合エラーが出るため、バケット・オブジェクトをまとめて削除するために付けています。
- オブジェクトを削除する場合
$ gsutil rm gs://bucket_name1/file.txt
Removing gs://bucket_name1/file.txt...
- 別バケットからオブジェクトをコピーする場合
$ gsutil cp gs://bucket_name1/file.txt gs://bucket_name2/
ちなみにGCS上だけでなくローカルからGCSへ、GCSからローカルへコピーすることも可能です。
- 別バケットからオブジェクトを移動する場合
$ gsutil mv gs://bucket_name1/file.txt gs://bucket_name2/
Copying gs://bucket-name1/file.txt...
Removing gs://bucket-name1/file.txt...
cpと同様でGCS上だけでなくローカルからGCSへ、GCSからローカルへ移動することも可能です。また、オブジェクトをリネームすることも出来ます。
まとめ
- 今回よく使用するコマンドのみ記載しましたが、他にもコマンドがあるので興味がある方は調べてみてください。何か間違いなどございましたらお手数ですがご指摘ください。