こちらの記事はWindows11向けの解説です。
CloudStorageでフォルダーをダウンロードしようとするとこんな画面が出てきます。
案内によると、どうもgcloud CLIが必要なようです。 調べたところ、このコマンドラインツールを使った方法でしかフォルダをまとめてダウンロードする方法はないようです。
面倒ですね。
gcloud CLIをインストールする
こちらのページからインストーラーをダウンロードします。
gcloud CLI をインストールする | Google Cloud CLI のドキュメント
ダウンロードフォルダからこのインストーラーを起動します。
ここはチェック不要で次へ進みます。
同意確認を通って次の画面。
使っているパソコンのユーザーのうち、今のユーザーだけで使うか、ほかのユーザーでも使えるようにするかの画面です。 通常、今のユーザーだけで十分だと思います。
ここから先はそのままの設定で次へ次へとでOKです。
そしたら長いダウンロードが入ります。
。。。
ダウンロードが終わったら一つ画面を超えてこの画面、
こちらはとりあえずすべて不要です。
これでインストールは完了。 次はコマンドラインツールで初期設定です。
コマンドプロンプトを開きます
gcloud init と打ち込み、Enter。
初期設定が開始され、Googleログインの案内が出てきます。 ブラウザが開くのでそちらで使っているGoogleアカウントでログイン。
すでにログイン済みの場合は再度イニシャライズしますか?アカウントを変えますか?みたいな案内が出てくるので、その質問に1か2かで答える感じで進めます。
一回目の場合はYesかNoかを答える選択肢があったかと思います。Yesはy、Noはnで答えます。
googleログインができたらOKです。 プロジェクトの選択が出たかとおもいますが、そちらは選択せずに閉じても大丈夫です。
コマンド
これでセットアップはOKです。
次はコマンドの入力です。 さっきと同じように、コマンドプロンプトを開きます。
コマンドプロンプトが開いている場合は一回閉じて、もう一度開きましょう。
コマンドプロンプトはコマンドでWindowsのファイルやプログラムを操作するツールです。
コマンドプロンプトが開いている場所が、通常はユーザー名のフォルダになっていると思います。 C:\Users\ユーザー名>
フォルダの位置を動かすための基本的なコマンドだけ紹介します。
「cd」カレントディレクトリの意味です。この後ろに一つ開けて次のディレクトリの名前の場所に移動できます。 「dir」ディレクトリの意味です。今いるディレクトリの中にあるファイル一覧が見れます。 「cd ディレクトリの名前」dirで出てくる中のディレクトリに移動できます。 「cd ..」ひとつ前のディレクトリに移動できます。
ファイルパスの取り方。
..←がひとつ前のディレクトリ、.←が今のディレクトリ「user名/downloads」などで二つとなりのディレクトリやファイルを指定することもできます。
ファイルエクスプローラーで、パスを取りたいファイルやフォルダを右クリックすると「パスのコピー」という項目があるので、そこから絶対パスを取ってきて指定することもできます。
今回、覚えなきゃいけない特別なコマンドは一つだけ
gsutil cp gs://クラウドストレージ上のパス 保存したい場所のパス
このコマンドです。
使い方はこんな感じ。
一応コマンドの意味を解説します。
gsutil 今回使うプログラムのコマンドです。さっきのインストールで使えるようになりました。
cp コピーの意味です。gsutilのcpコマンドを使うということです。
gs:// GoogleStorageの中のパスですよ、という意味です。
gsutil -m cp -r とすると、これはコマンドのオプション機能で、僕もよくわかりませんがこのオプションを使うと複数ファイルのダウンロードが早くなるらしいです。
クラウドストレージ上のパス
ダウンロードしたいフォルダを開いた状態で、ここをクリックするとパスを取ってこれます。 ※青丸の部分は関係ないです。
gs://sample_buket_0 こんな感じで入力しましょう。
保存したい場所のパス
今回はdownloadsを指定してみました。 cdやdirコマンドを使って、どこに保存するか決めましょう。
"C:\Users\ryoum\Downloads" こんな感じで絶対パスで指定することもできます。
はまったエラー
CloudStorage上のフォルダをそのままダウンロードして保存するので、ファイル名に : (コロン)などが含まれていると、Windowsのフォルダやファイルで使えない名前になってしまいます。
例えばファイル名が 12月1日10:10.jpg とか。
CloudStorageに保存するときに、こういう名前を付けないようにしましょう。
CloudStorageがこういう名前で保存できてしまうのがよくないと思う(小声)
追加データだけをダウンロード
コマンドを打つ時、
gsutil -m cp -r gs://クラウドのパス ローカルのパス
と打つかわりに、
gsutil -m cp -r -n gs://クラウドのパス ローカルのパス
とする。
この、cp に -n オプションを追加することで、「ダウンロード先に同じファイルがある場合はスキップする」という動作に変わります。
これで毎回ダウンロードをしなくても、新しいファイルだけを追加ダウンロードできるようになります。
※同じファイル名があったらパスする機能なので、ファイルの中身が新しくなっていたとしてもスキップしてしまいます。
終わり
以上です。疑問点があればぜひコメントにてご質問ください。