https://cloud.google.com/storage/docs/using-object-versioning?hl=ja
https://cloud.google.com/storage/docs/using-versioned-objects?hl=ja
https://cloud.google.com/storage/docs/object-versioning?hl=ja
-- 1. 前作業
gcloud init
gcloud auth list
gcloud --version
gcloud projects create project01-9999999 \
--name="project01"
gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1 --quiet
gcloud config set compute/zone asia-northeast1-a --quiet
gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111
gcloud services enable compute.googleapis.com --project project01-9999999
gcloud components update
-- 2. バケットの作成
gcloud storage buckets create gs://bucket123 \
--default-storage-class=Standard \
--no-enable-autoclass \
--location=asia-northeast1 \
--public-access-prevention \
--uniform-bucket-level-access
gcloud storage ls
-- 3. バケットでオブジェクトのバージョニングを設定する
gcloud storage buckets update gs://bucket123 --versioning
gcloud storage buckets describe gs://bucket123 --format="default(versioning)"
-- 4. ファイルのアップロード
echo test > test.txt
gcloud storage cp test.txt gs://bucket123
gcloud storage ls --long gs://bucket123/*
gcloud storage ls --all-versions --long gs://bucket123/*
-- 5. ファイルの更新
echo testtest > test.txt
gcloud storage cp test.txt gs://bucket123
gcloud storage ls --long gs://bucket123/*
gcloud storage ls --all-versions --long gs://bucket123/*
-- 6. ファイルの更新前に復元
gcloud storage cp gs://bucket123/test.txt#1111111111111111 gs://bucket123/test.txt
gcloud storage ls --long gs://bucket123/*
gcloud storage ls --all-versions --long gs://bucket123/*
-- 7. ファイルの削除
gcloud storage rm gs://bucket123/test.txt
gcloud storage ls --long gs://bucket123/*
gcloud storage ls --all-versions --long gs://bucket123/*
-- 8. ファイルの削除前に復元
gcloud storage cp gs://bucket123/test.txt#2222222222222222 gs://bucket123/test.txt
gcloud storage ls --long gs://bucket123/*
gcloud storage ls --all-versions --long gs://bucket123/*
-- 9. 非現行バージョンのオブジェクトを削除する
gcloud storage rm gs://bucket123/test.txt#3333333333333333
gcloud storage ls --long gs://bucket123/*
gcloud storage ls --all-versions --long gs://bucket123/*
-- 10. クリーンアップ
gcloud storage rm gs://bucket123 --recursive
gcloud storage ls
gcloud projects list
gcloud projects delete project01-9999999 \
--quiet