【GCP】introduction to APIs

目的

利用GCP建立一個API

建立JSON檔案

開啟GCP平台,打開Cloud Shell

輸入以下指令,編輯value.json

nano values.json

進入編輯模式後,貼上以下內容
※<YOUR_BUCKET_NAME>請換成自訂的任意名字,命名須遵守這篇文章

{  "name": "<YOUR_BUCKET_NAME>",
   "location": "us",
   "storageClass": "multi_regional"
}

結束編輯模式:Ctrl+X
確定儲存:Y
結束:Enter

取得API認證

OAuth 2.0 playground
選擇「Cloud Storage JSON API V1」
並選擇之下的「https://www.googleapis.com/auth/devstorage.full_control」

選好後,按下藍色按鈕「Authorize APIs」

接者,完成Step2跟Step3,並複製Access token序號

建立Cloud Storage Bucket

回到GCP Cloud Shell,輸入以下指令

ls

會看到回傳2份檔案:README-cloudshell.txt values.json

繼續輸入以下指令
※<YOUR_TOKEN>請貼上剛剛複製的OAuth Access token序號

export OAUTH2_TOKEN=<YOUR_TOKEN>

輸入以下指令
※<YOUR_PROJECT_ID>請貼上專案ID

export PROJECT_ID=<YOUR_PROJECT_ID>

執行以下程式,建立bucket

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"

檢視建立好的Cloud Storage Bucket

選單→Storage→Browser

並點選專案名,就可看到建立好的Cloud Storage Bucket

上傳媒體檔案至API

  1. 找一張圖片,儲存為demo-image.pn
  2. 點選Cloud Sheel右上角的「…」menu處,選擇「upload file」
  3. 執行以下程式,找尋媒體路徑,並且複製回傳的絕對路徑
    realpath demo-image.png
  4. 執行以下指令
    ※<DEMO_IMAGE_PATH>請代換成剛剛複製貼上的路徑

    export OBJECT=<DEMO_IMAGE_PATH>
  5. 執行以下指令
    ※<YOUR_BUCKET>代換成這隻Bucket的名稱(value.json裡面的name)

    export BUCKET_NAME=<YOUR_BUCKET>
  6. 執行以下指令,上傳媒體至Cloud Storage Bucket
    ※<YOUR_BUCKET>代換成這隻Bucket的名稱(value.json裡面的name)

    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"
  7. 接者,可以在預覽主畫面上,看到上傳成功的媒體