🌀
[gcloud CLI×Cloud Storage]複数ファイルをまとめてDLする
概要
GCPのコンソール画面から、Cloud Storageのオブジェクトの複数一括ダウンロードは不可のため、gcloud CLIを使って一括ダウンロードする
前提条件
使用するユーザーアカウントに「Storage 管理者/Storage オブジェクト閲覧者/Storage オブジェクト管理者」いずれかのロールが付与されていること(もしくは、「storage.objects.get」権限があればOK)
手順
1. gcloud CLIのインストールとセットアップ
ローカル環境(Linux 64 ビット(x86_64)を想定)の任意のディレクトリにて、以下のコマンドを実行
# (1) 専用ディレクトリの作成
mkdir gcloud-cli && cd gcloud-cli
# (2) 一式のダウンロード
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-428.0.0-linux-x86_64.tar.gz
# (3) 解凍
tar -xf google-cloud-cli-428.0.0-linux-x86_64.tar.gz
## (4) インストール: 途中ログインシェルへの設定を聞かれる: 設定したい場合はy、しない場合はnで回答
./google-cloud-sdk/install.sh
# (5) 初期設定
./google-cloud-sdk/bin/gcloud init
## 以下、コンソール画面にて聞かれる内容と回答
### ①Pick configuration to use: [2] Create a new configuration を選択
### ②Choose the account you would like to use to perform operations for this configuration: [6] Log in with a new accountを選択(この後ブラウザを通して自身のGoogleアカウントで認証)
### ③Pick cloud project to use: 権限のあるプロジェクトが表示されるので、任意のものを選択 ※使用するGoogleアカウントが当該GCSバケット/オブジェクトに必要な権限があればいいので、適当でかまわない
2. 対象オブジェクトのDL
1に続けて以下を実施
# (1) ダウンロード用ディレクトリを作成: とりあえず、gloud-cliディレクトリと同階層にしておく
mkdir -p ../dl_gcs_obj_$(date +'%Y%m%d')
# (2) ディレクトリが作成されたことを確認
ls -ltr ../
# (3) 以下対象バケットのhogeフォルダ配下のファイルを全てダウンロードする場合
./google-cloud-sdk/bin/gcloud storage cp gs://<バケット名>/hoge/* ../dl_gcs_obj_$(date +'%Y%m%d')/
# (4) ファイルの存在&数チェック
ls -ltr ../dl_gcs_obj_$(date +'%Y%m%d')/
find ../dl_gcs_obj_$(date +'%Y%m%d')/ -type f | wc -l
Discussion