WindowsのコマンドラインでGoogle Cloud Strageにアップロード

年末のバックアップ処理でGoogle Cloud Storageにブラウザでアップロードしたら失敗したので、コマンドラインでやってみたときの覚書。
Gemini 3 Pro Previewと対話。

環境: Windows 11, Google Cloud SDK 550.0.0


1. ファイルをアップロード

Google Cloud SDKのバージョン確認。
PS> gcloud version

ログインする。
PS> gcloud auth login

生成されたURLをブラウザに貼り付けて認証。

プロジェクトIDを設定。
PS> gcloud config set project hoge-backup

バケット内の一覧を表示。
PS> gcloud storage ls gs://svn-backup.hoge.jp/20251221/

移動してアップロード。
PS> cd D:\Downloads
PS> ls
PS> gcloud storage cp .\repo-hoge_20251217.tgz gs://svn-backup.hoge.jp/20251221/

確認。
PS> gcloud storage ls gs://svn-backup.hoge.jp/20251221/

ファイルサイズが大きいほど、gcloud storage コマンドの方が圧倒的に速く、かつ安全らしい。
またgcloud storage コマンドは失敗しても途中から再開できる。
(ブラウザの場合は最初からやり直し)


Gemini先生に作ってもらったワンラインコマンド。
(開始時間/終了時間/所要時間を表示)
PS> $s = Get-Date; Write-Host "開始: $s"; gcloud storage cp .\repo-hoge_20251217.tgz gs://svn-backup.hoge.jp/20251221/; $e = Get-Date; Write-Host "終了: $e"; Write-Host "所要時間: $($e - $s)"


2.ストレージクラスの確認

アップロードする際に下記メッセージが表示される。

WARNING: Destination has a default storage class other than "STANDARD", hence parallel composite upload will not be performed. If you would like to disable this check, run: gcloud config set storage/parallel_composite_upload_compatibility_check=False

これは「意図せぬ追加料金が発生するのを防ぐために、あえて最速のアップロード機能を無効にしました」という意味。

ストレージクラスに関しては公式サイトで確認。
参考: ストレージ クラス  |  Cloud Storage  |  Google Cloud Documentation

バックアップ用であればArchiveにしておくと料金が安くて済む。

クラス名

向いている頻度

保管料金

データ取り出し料金

最低保存期間

NEARLINE

1 程度

安い

かかる

30

COLDLINE

3ヶ月に1 程度

とても安い

高い

90

ARCHIVE

年に1 未満

激安

とても高い

365

バケットの設定を確認するコマンド。
PS> gcloud storage buckets describe gs://svn-backup.hoge.jp

creation_time: 2023-12-25T01:11:38+0000
default_storage_class: ARCHIVE
generation: 1703466698077507967
location: US
location_type: multi-region
metageneration: 1
name: svn-backup.hoge.jp
public_access_prevention: enforced
rpo: DEFAULT
soft_delete_policy:
  effectiveTime: '2024-03-01T08:00:00+00:00'
  retentionDurationSeconds: '604800'
storage_url: gs://svn-backup.hoge.jp/
uniform_bucket_level_access: true
update_time: 2023-12-25T01:11:38+0000

2行目の「default_storage_class: ARCHIVE」でARCHIVEストレージクラスがデフォルトになっていることが分かる。


3.バケットのライフサイクル設定

ブラウザでバケットをクリックして「ライフサイクル」を設定すると指定した期間でストレージクラスを変更したり削除したりできる。

バックアップ用なので次のように設定した。

  1. 90日経過したらColdlineに設定
  2. 365日経過したらArchiveに設定
  3. 730日(2年)経過したらオブジェクトの削除

設定後、即時適用されるわけではなく、通常24時間以内に適用されるらしい。



▼ 関連記事