gsutil基本コマンド
Google Cloud Storage を操作するための gsutil コマンドをまとめています。
基本コマンド
Section titled “基本コマンド”# バケットの一覧を出力するコマンドgsutil ls
# バケット内のオブジェクト一覧を出力gsutil ls gs://apptemplate-dev-nck.appspot.com/
# 詳細表示gsutil ls -L gs://apptemplate-dev-nck.appspot.com/バケット操作
Section titled “バケット操作”バケットの作成・削除
Section titled “バケットの作成・削除”# バケットの作成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バケット情報の確認
Section titled “バケット情報の確認”# バケットの詳細情報gsutil ls -L -b gs://my-bucket
# バケットのメタデータgsutil stat gs://my-bucket
# バケットのロケーション確認gsutil ls -L -b gs://my-bucket | grep Locationファイル操作
Section titled “ファイル操作”アップロード
Section titled “アップロード”# 単一ファイルのアップロード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/ダウンロード
Section titled “ダウンロード”# 単一ファイルのダウンロード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 ./移動・コピー・削除
Section titled “移動・コピー・削除”# ファイルの移動(コピー後に元を削除)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# ローカルディレクトリとバケットの同期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/アクセス制御
Section titled “アクセス制御”ACL (Access Control List)
Section titled “ACL (Access Control List)”# 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# バケットの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メタデータ操作
Section titled “メタデータ操作”# メタデータの設定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高度な使い方
Section titled “高度な使い方”ライフサイクル管理
Section titled “ライフサイクル管理”{ "lifecycle": { "rule": [ { "action": {"type": "Delete"}, "condition": {"age": 30} } ] }}# ライフサイクルルールの適用gsutil lifecycle set lifecycle.json gs://my-bucket
# ライフサイクルルールの確認gsutil lifecycle get gs://my-bucket並列処理とパフォーマンス
Section titled “並列処理とパフォーマンス”# 並列アップロード(複数ファイル)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/バッチ操作用スクリプト
Section titled “バッチ操作用スクリプト”#!/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 fidoneトラブルシューティング
Section titled “トラブルシューティング”# デバッグモードで実行gsutil -D cp file.txt gs://my-bucket/
# 設定の確認gsutil config
# プロキシ経由での使用export https_proxy=http://proxy.example.com:8080gsutil cp file.txt gs://my-bucket/
# 認証情報の更新gcloud auth application-default login