はじめに
Google Cloud StorageへAPI経由でファイルをuploadする。
Introduction to APIs in Google を受講して、基本的な使い方を覚えたのでメモを残す
前準備
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の構文チェックに便利なサイト
Cloud StorageのAPIリファレンス(英語)
https://cloud.google.com/storage/docs/json_api/v1/