コンテンツにスキップ

gsutil基本コマンド

Google Cloud Storage を操作するための gsutil コマンドをまとめています。

Terminal window
# バケットの一覧を出力するコマンド
gsutil ls
# バケット内のオブジェクト一覧を出力
gsutil ls gs://apptemplate-dev-nck.appspot.com/
# 詳細表示
gsutil ls -L gs://apptemplate-dev-nck.appspot.com/
Terminal window
# バケットの作成
gsutil mb gs://my-new-bucket
# リージョンを指定してバケットを作成
gsutil mb -l asia-northeast1 gs://my-regional-bucket
# ストレージクラスを指定
gsutil mb -c nearline gs://my-nearline-bucket
# バケットの削除(空のバケットのみ)
gsutil rb gs://my-bucket
# バケットとその中身を強制削除
gsutil rm -r gs://my-bucket
Terminal window
# バケットの詳細情報
gsutil ls -L -b gs://my-bucket
# バケットのメタデータ
gsutil stat gs://my-bucket
# バケットのロケーション確認
gsutil ls -L -b gs://my-bucket | grep Location
Terminal window
# 単一ファイルのアップロード
gsutil cp local-file.txt gs://my-bucket/
# ディレクトリを再帰的にアップロード
gsutil cp -r local-directory gs://my-bucket/
# 並列アップロード(大きなファイルの場合)
gsutil -m cp -r local-directory gs://my-bucket/
# 進捗を表示しながらアップロード
gsutil cp -v large-file.zip gs://my-bucket/
Terminal window
# 単一ファイルのダウンロード
gsutil cp gs://my-bucket/file.txt ./
# ディレクトリを再帰的にダウンロード
gsutil cp -r gs://my-bucket/directory ./
# ワイルドカードを使用したダウンロード
gsutil cp gs://my-bucket/*.txt ./
# 並列ダウンロード
gsutil -m cp -r gs://my-bucket/large-directory ./
Terminal window
# ファイルの移動(コピー後に元を削除)
gsutil mv gs://source-bucket/file.txt gs://dest-bucket/
# バケット間でのコピー
gsutil cp gs://source-bucket/file.txt gs://dest-bucket/
# ファイルの削除
gsutil rm gs://my-bucket/file.txt
# ディレクトリの削除
gsutil rm -r gs://my-bucket/directory/
# パターンマッチで削除
gsutil rm gs://my-bucket/logs/*.log
Terminal window
# ローカルディレクトリとバケットの同期
gsutil rsync -r local-directory gs://my-bucket/backup
# 削除も含めた完全同期
gsutil rsync -d -r local-directory gs://my-bucket/backup
# ドライラン(実際には実行しない)
gsutil rsync -n -d -r local-directory gs://my-bucket/backup
# 除外パターンを指定
gsutil rsync -r -x ".*\.tmp$" local-directory gs://my-bucket/
Terminal window
# ACLの確認
gsutil acl get gs://my-bucket/file.txt
# ファイルを公開
gsutil acl ch -u AllUsers:R gs://my-bucket/file.txt
# ファイルを非公開に戻す
gsutil acl ch -d AllUsers gs://my-bucket/file.txt
# 特定のユーザーに読み取り権限を付与
gsutil acl ch -u user@example.com:R gs://my-bucket/file.txt
Terminal window
# バケットのIAMポリシーを確認
gsutil iam get gs://my-bucket
# ユーザーにStorageビューアー権限を付与
gsutil iam ch user:user@example.com:objectViewer gs://my-bucket
# サービスアカウントに権限を付与
gsutil iam ch serviceAccount:sa@project.iam.gserviceaccount.com:objectAdmin gs://my-bucket
Terminal window
# メタデータの設定
gsutil setmeta -h "Content-Type:text/plain" gs://my-bucket/file.txt
# キャッシュ制御の設定
gsutil setmeta -h "Cache-Control:public, max-age=3600" gs://my-bucket/*.jpg
# カスタムメタデータの設定
gsutil setmeta -h "x-goog-meta-environment:production" gs://my-bucket/app.jar
lifecycle.json
{
"lifecycle": {
"rule": [
{
"action": {"type": "Delete"},
"condition": {"age": 30}
}
]
}
}
Terminal window
# ライフサイクルルールの適用
gsutil lifecycle set lifecycle.json gs://my-bucket
# ライフサイクルルールの確認
gsutil lifecycle get gs://my-bucket
Terminal window
# 並列アップロード(複数ファイル)
gsutil -m cp *.txt gs://my-bucket/
# 並列処理のスレッド数を指定
gsutil -o GSUtil:parallel_thread_count=10 -m cp -r large-dir gs://my-bucket/
# 複合アップロード(大きなファイル用)
gsutil -o GSUtil:parallel_composite_upload_threshold=150M cp large-file.zip gs://my-bucket/
#!/bin/bash
# 特定の拡張子のファイルをバックアップ
BUCKET="gs://backup-bucket"
DATE=$(date +%Y%m%d)
# ログファイルのバックアップ
gsutil -m cp -r /var/log/*.log ${BUCKET}/logs/${DATE}/
# 30日以上前のバックアップを削除
gsutil ls ${BUCKET}/logs/ | while read dir; do
DIR_DATE=$(basename $dir)
if [[ $(date -d "${DIR_DATE}" +%s) -lt $(date -d "30 days ago" +%s) ]]; then
gsutil -m rm -r $dir
fi
done
Terminal window
# デバッグモードで実行
gsutil -D cp file.txt gs://my-bucket/
# 設定の確認
gsutil config
# プロキシ経由での使用
export https_proxy=http://proxy.example.com:8080
gsutil cp file.txt gs://my-bucket/
# 認証情報の更新
gcloud auth application-default login