繼續分享一篇在Node.js執行google cloud storage簽章的小範例程式碼:
這邊是透過gcloud這個套件,由Google Cloud Platform Team所撰寫的...
其中使用到的service account金鑰封裝方式是json格式的那個... 整個service account的建置操作過程如下:
Step1: 建立Service Account
進入頁面:Cloud Console > APIs & auth > Credentials
點選"Create new Client ID"後,選擇Service account
Step2: 下載JSON Key
最後,Service account建立好的畫面如下:
在Service account下會有產生p12 key與json key的按鈕,本次範例所需要的是json key,下載後把位置放到程式中,即可對cloud storage的文件進行簽署動作。
Step3: 測試
接下來可以透過上面的範例來執行物件位置的簽章:
$ node test-gcs.js
http://storage.googleapis.com/test-centos6-upload/out.png?GoogleAccessId=288...ppn1h@developer.gserviceaccount.com&Expires=1431164746&Signature=ApIXayh3hbplWhCl8Q2BmxvEkuyOz857SAPGBLObSYBstaKq4dnzOwWCefz6Cldd4I....(skip).....79tXkbV0%3D
簽章完畢後,即代表這個物件可以透過http(s)存取了!直接使用這個URL下載文件吧 :D
var gcloud = require('gcloud');
var project_id = 'your-project-id';
var key_path = '/path/to/keyfolder';
var key_name = 'your-project-json-key.json';
var storage = gcloud.storage({
projectId: project_id,
keyFilename: key_path + '/' + key_name
});
var bucket = storage.bucket('your-bucket-name');
bucket.file('your-object-name').getSignedUrl({
action: 'read',
expires: Math.round(Date.now() / 1000) + (60 * 5) // 5 minutes.
}, function(err, url) {
if(err) console.log('>>>error:' + err);
console.log('read:', url);
});
這邊是透過gcloud這個套件,由Google Cloud Platform Team所撰寫的...
其中使用到的service account金鑰封裝方式是json格式的那個... 整個service account的建置操作過程如下:
Step1: 建立Service Account
進入頁面:Cloud Console > APIs & auth > Credentials
點選"Create new Client ID"後,選擇Service account
Step2: 下載JSON Key
最後,Service account建立好的畫面如下:
在Service account下會有產生p12 key與json key的按鈕,本次範例所需要的是json key,下載後把位置放到程式中,即可對cloud storage的文件進行簽署動作。
Step3: 測試
接下來可以透過上面的範例來執行物件位置的簽章:
$ node test-gcs.js
http://storage.googleapis.com/test-centos6-upload/out.png?GoogleAccessId=288...ppn1h@developer.gserviceaccount.com&Expires=1431164746&Signature=ApIXayh3hbplWhCl8Q2BmxvEkuyOz857SAPGBLObSYBstaKq4dnzOwWCefz6Cldd4I....(skip).....79tXkbV0%3D
簽章完畢後,即代表這個物件可以透過http(s)存取了!直接使用這個URL下載文件吧 :D
留言
張貼留言