GCP CLI(S3)


https://cloud.google.com/storage/docs/discover-object-storage-gcloud?hl=ja

 


前作業

gcloud init
gcloud auth list

gcloud --version

gcloud projects create project01-9999999 \
--name="project01"

gcloud projects list


gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111

gcloud services enable compute.googleapis.com

gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1
gcloud config set compute/zone asia-northeast1-a

 

---------------------------------------------
Cloud Storage


ストレージクラス

Autoclass
オブジェクト レベルのアクティビティに基づいて、各オブジェクトをホット ストレージまたはコールド ストレージへ自動的に移行し、費用とレイテンシを最適化します。

Standard
短期間のストレージや頻繁にアクセスされるデータに最適

Nearline
アクセスが 1 か月に 1 回未満のバックアップとデータに最適

Coldline
災害復旧とデータへのアクセスが四半期に 1 回未満の場合に最適

Archive
アクセス頻度が年 1 回に満たないデータの長期デジタル保存に適しています

 


バケットの作成

gcloud storage buckets create gs://bucket1231 \
--default-storage-class=Standard \
--no-enable-autoclass \
--location=asia-northeast1 \
--public-access-prevention \
--uniform-bucket-level-access

gcloud storage buckets create gs://bucket1232 \
--default-storage-class=Standard \
--no-enable-autoclass \
--location=asia-northeast1 \
--public-access-prevention \
--uniform-bucket-level-access

gcloud storage buckets list

gcloud storage buckets describe gs://bucket1231
gcloud storage buckets describe gs://bucket1232


バケットの削除

gcloud storage rm gs://bucket1231 --recursive
gcloud storage rm gs://bucket1232 --recursive

 

※下記コマンドはバケットが空っぽの必要がある。またコマンドを実行しても戻ってこない
gcloud storage buckets delete gs://bucket1231


---------------------------------------------

 


バケットにファイルをアップロード

echo test1 > test1.txt
echo test2 > test2.txt
echo test3 > test3.txt

gcloud storage cp test1.txt gs://bucket1231

gcloud storage cp test2.txt gs://bucket1231/dir1

末尾に/を付けないとコピー先のファイル名とみなされる


gcloud storage cp test3.txt gs://bucket1231/dir2/

末尾に/を付けるとディレクトリとみなされ、その配下にコピーされる

 


バケットディレクトリをアップロード

mkdir dirA
echo test1 > dirA/test1.txt
echo test2 > dirA/test2.txt
echo test3 > dirA/test3.txt
ls -l dirA

gcloud storage cp dirA gs://bucket1232 --recursive

 

ディレクトリの作成
CLIでは作成できない模様

 

バケットの一覧

gcloud storage ls


ファイルの一覧
gcloud storage ls gs://bucket1231/*
gcloud storage ls gs://bucket1232/*

 

ファイルの確認

gcloud storage cat gs://bucket1231/dir2/test3.txt

ファイルの移動

gcloud storage mv gs://bucket1232/dirA/test3.txt gs://bucket1231/

ディレクトリの移動

gcloud storage mv gs://bucket1232/dirA gs://bucket1232/dir2
gcloud storage mv gs://bucket1232/dir2 gs://bucket1231/dir2


ファイルの削除

gcloud storage rm gs://bucket1231/dir2/*

ディレクトリ配下のファイルがなくなるとディレクトリも削除される


ディレクトリの削除
gcloud storage rm gs://bucket1231/dir2 --recursive

 

バケットからファイルのダウンロード

gcloud storage cp gs://bucket1231/test1.txt test4.txt


バケットからディレクトリのダウンロード
mkdir dirB
gcloud storage cp gs://bucket1232/dirA ./dirB --recursive
gcloud storage cp gs://bucket1232/dirA/* ./dirB --recursive


---------------------------------------------

 

クリーンアップ

gcloud projects list

gcloud projects delete project01-9999999 --quiet