2024-02-05
S3 Object Stroage我想大家多少都有聽過或者使用過,當然也對於那高昂的使用費多有耳聞. 剛好Linode提供了可以相容於S3又不用那麼多費用的Object Storage服務.這邊我就來分享透過API快速進入Object Storage的世界,希望能為你省去看文件/找文件/推敲文件脈絡的功夫. (Web API的操作非常基本,進階的操作建議研讀官方文件)
已上傳檔案名為sample.png
的圖檔到sampleDir
資料夾為例
# token -> 這個範例使用Linode Web設定帳號的Personal API token來存取(Linode Web點擊頭像-> API token),也可以透過OAuth
# cluster_id -> 所在地區Cluster Id,看起來與地區有關
# bucket_id -> 你的bucket名稱
# 以Linode Web頁面提供的Bucket的Url可以推測出來
# 以此url為例: object-storage-test.jp-osa-1.linodeobjects.com
# bucket_id: object-storage-test
# cluster_id: jp-osa-1
curl --request POST \
--url https://api.linode.com/v4/object-storage/buckets/{{cluster_id}}/{{bucket_id}}/object-url \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--header 'User-Agent: insomnia/8.6.0' \
--data '{
"method": "PUT",
"name": "sampleDir/sample.png",
"content_type": "image/png"
}'
Linode Object Storage會回覆我們
{
"url": "https://jp-osa-1.linodeobjects.com:443/object-storage-test/sampleDir/sample.png?Signature=nkASrS%2B3S7QK6AYM8oZPifqfdsfYso%3D&Expires=1706858429&AWSAccessKeyId=B478147FEOIRTA4DXPO",
"exists": false
}
我們就根Linode回傳給我們的Url做我們預告的操作即可
curl --request PUT \
--url 'https://jp-osa-1.linodeobjects.com:443/object-storage-test/sampleDir/sample.png?=&Signature=nkASrS%2B3S7QK6AYM8oZPifqfdsfYso%3D&Expires=1706858434&AWSAccessKeyId=B478147FEOIRTA4DXPO' \
--header 'Content-Type: image/png' \
--data '{{the data binary}}'
以上就完成了上傳的操作了,其他如下載與刪除也是一樣的流程,只是Http method改成GET或者DELETE