目的
利用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
- 找一張圖片,儲存為demo-image.pn
- 點選Cloud Sheel右上角的「…」menu處,選擇「upload file」
- 執行以下程式,找尋媒體路徑,並且複製回傳的絕對路徑
realpath demo-image.png
- 執行以下指令
※<DEMO_IMAGE_PATH>請代換成剛剛複製貼上的路徑export OBJECT=<DEMO_IMAGE_PATH>
- 執行以下指令
※<YOUR_BUCKET>代換成這隻Bucket的名稱(value.json裡面的name)export BUCKET_NAME=<YOUR_BUCKET>
- 執行以下指令,上傳媒體至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"
- 接者,可以在預覽主畫面上,看到上傳成功的媒體