跳到主要內容

Google Cloud Storage Sign URL

在Google Cloud Storage的使用上有數存種取資料的方式,其中有種存取很有趣,稱作Sign URL....
透過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>
簽章的參數說明:
  1. -m PUT: 代表使用gsutil中上傳的方法
  2. -d 1h: 代表該簽章可用的時間長度
  3. -c text/plan: 代表該物件上傳後的型態描述
  4. <private-key-file>: 代表綁定的p12 key位置
  5. 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

如果使用上傳的簽署方式,需要搭配form傳遞資料的指令或是網頁程式來完成實際上傳的動作。以上,給大家參考!

留言

這個網誌中的熱門文章

透過Google Apps Script結合Google Form做即時郵件通知

體驗過Google Apps Script的功能後,也發現他結合GmailApps的模組 GmailApps的應用可以用在表單填寫完成後,做發信的通知 例如您開立了一個訂購的表單,為了要在第一時間通知商家有訂單進入 就可以直接呼叫Gmail做發信的通知,讓手持Smart Phone的我們可以很快的知道生意上門了! 下面規劃三個function,其中: onCommit():為form commit時候觸發的function,需要掛載於form commit trigger上 jsonArrToTable():目的將json array解析成為一個Table getLastRowTable():目的將整個table的回傳過濾為剩下第一筆(表頭,含有Form的欄位說明)與最後一筆(原則上就是剛剛送出的那一筆表單) 完整程式碼如下: function onCommit(){   var sheet = SpreadsheetApp.getActiveSheet();   var rows = sheet.getDataRange();   var numRows = rows.getNumRows();   var values = rows.getValues();   var content = getLastRowTable(values);   var htmlBody = "Hi Admin: <br/><br/>有訂單拉,檢查一下吧! <br/><br/>" + content + '<br/><br/>Send by Google Apps';   GmailApp.sendEmail(     " your-email-address@gmail.com ",      "Order Confirm Notice",      htmlBody,      {from: ' from-email-...

Share a chrome plugin for manage google cloud platform

好玩意兒報報.... 同事的新作,把Google Project List在Chrome Plugin中! 對一次管理多個專案的人來說,真得超方便的拉! 下載: https://chrome.google.com/webstore/detail/gdclauncher/bicgkglnnilldakpenngnblekooejnpg 使用說明: 1. Use browser url bar to quick search: Type "gdcl" in browser Press "TAB" to start search Type the project id key word then select the search result... 2. Using quick launch bar... You can search by keyword or click project name to go to the project or gae link to go to gae or go to billing page....

Cloud Monitor嚐鮮

GCP上,我們非常想要的一個功能,終於問世.... Cloud Monitor來了!