はじめに
Google Cloud StorageへAPI経由でファイルをuploadする。
Introduction to APIs in Google を受講して、基本的な使い方を覚えたのでメモを残す
https://www.qwiklabs.com/focuses/3473?catalog_rank=%7B%22rank%22%3A15%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&locale=ja&parent=catalog&search_id=2013206
前準備
OAuthのアクセストークンを生成する
https://developers.google.com/oauthplayground/


バケットの作成
頻繁に使うので認証を環境変数に入れる
export OAUTH2_TOKEN=<YOUR_TOKEN>
プロジェクトIDも入れる
export PROJECT_ID=<YOUR_PROJECT_ID>
バケット生成の定義のjsonファイルを作成、読み込む
{ "name": "<YOUR_BUCKET_NAME>",
"location": "us",
"storageClass": "multi_regional"
}
curl -X POST --data-binary @values.json \
-H "Authorization: Bearer $OAUTH2_TOKEN" \
-H "Content-Type: application/json" \
"https://www.googleapis.com/storage/v1/b?project=$PROJECT_ID"
画像をuploadする
wget https://gcpstaging-qwiklab-website-prod.s3.amazonaws.com/bundles/assets/138f92c75d08d0705e3853c1d790453f37fdfff38afad7fb4b431b9fa690f1fc.png
mv 138f92c75d08d0705e3853c1d790453f37fdfff38afad7fb4b431b9fa690f1fc.png demo-image.png
フルパスを確認する
realpath demo-image.png
結果を環境変数に入れる
export OBJECT=<DEMO_IMAGE_PATH>
バケット名を環境変数に入れる
(先ほど作成したやつ)
export BUCKET_NAME=<YOUR_BUCKET>
cloud storageにuploadする
curl -X POST --data-binary @$OBJECT \
-H "Authorization: Bearer $OAUTH2_TOKEN" \
-H "Content-Type: image/png" \
"https://www.googleapis.com/upload/storage/v1/b/$BUCKET_NAME/o?uploadType=media&name=demo-image"
参考情報
JSONの構文チェックに便利なサイト
https://jsonlint.com/
Cloud StorageのAPIリファレンス(英語)
https://cloud.google.com/storage/docs/json_api/v1/