在Google Cloud Storage的使用上有數存種取資料的方式,其中有種存取很有趣,稱作Sign URL....
如果使用上傳的簽署方式,需要搭配form傳遞資料的指令或是網頁程式來完成實際上傳的動作。以上,給大家參考!
透過Sign URL,可以指定下載的網址在固定的時間內可以讀取資源
超過該時間,則URL就失效
一般我們用程式來取Sign URL,但是gsutil已經支援Sign URL了唷!這邊就來介紹一下gsutil的Sign URL操作方式... (官方說明:https://cloud.google.com/storage/docs/gsutil/commands/signurl)
gsutil signurl [options] <private-key-file> gs://some-bucket/some-object/
我們實際操作一下,針對物件位置gs://mitaccp300-dra-asia/10M.dat進行下載簽章:
$ gsutil signurl -d 1m -p notasecret /path/to/mykey.p12 gs://mitaccp300-dra-asia/10M.dat
其中參數的意義為:
- -d: 簽章有效的長度
- -p: p12 key的密碼
- /path/to/mykey.p12: p12 key的路徑位置
- gs://mitaccp300-dra-asia/10M.dat: 需要簽章的物件位置
執行結果如下
URL HTTP Method Expiration Signed URL
gs://mitaccp300-dra-asia/10M.dat GET 2015-04-23 23:59:44 https://storage.googleapis.com/mitaccp300-dra-asia/10M.dat?GoogleAccessId=860835453338-ifhbcaql190oimo0ecp3rp5lkggvapq2@developer.gserviceaccount.com&Expires=1429804784&Signature=dplM53lcwE7...xI7WFr7EJTPtMuNzil4%3D
其中紅色部分即是我們可以不透過認證而可以下載的URL.. 直接把網址貼到瀏覽器即可以在不通過驗證的情況下存取該物件,這樣,資料的安全性部分就更有保障了!
除了下載簽章,gsutil也直接支援了上傳URL的簽章,下面是簡單的說明:
gsutil signurl -m PUT [optopns] <private-key-file> gs://<bucket>/<obj>
簽章的參數說明:
- -m PUT: 代表使用gsutil中上傳的方法
- -d 1h: 代表該簽章可用的時間長度
- -c text/plan: 代表該物件上傳後的型態描述
- <private-key-file>: 代表綁定的p12 key位置
- gs://<bucket>/<obj>: 代表要簽章的cloud storage位置
實際執行狀況
$ gsutil signurl -m PUT -d 1m -p notasecret /path/to/mykey.p12 gs://mitaccp300-dra-asia/10M.dat
URL HTTP Method Expiration Signed URL
gs://mitaccp300-dra-asia/10M.dat PUT 2015-04-24 00:18:51 https://storage.googleapis.com/mitaccp300-dra-asia/10M.dat?GoogleAccessId=860835453338-ifhbcaql190oimo0ecp3rp5lkggvapq2@developer.gserviceaccount.com&Expires=1429805931&Signature=XHF0gOty0XFWh3DsYI7ABF%2FzO....ZTQN1D0l8IpkUq8%3D
留言
張貼留言