日: 2019年2月19日

  • CloudStorageへAPI経由でファイルをuploadする

    CloudStorageへAPI経由でファイルをuploadする

    はじめに

    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/