這是如何做到filepicker簽署的網址流星,基於文檔here上的例子:
var crypto = Npm.require('crypto');
var FILEPICKER_KEY = 'Z3IYZSH2UJA7VN3QYFVSVCF7PI';
var BASE_URL = 'https://www.filepicker.io/api/file';
Meteor.methods({
signedUrl: function(handle) {
var expiry = Math.floor(new Date().getTime()/1000 + 60 * 60);
var policy = new Buffer(JSON.stringify({
handle: handle,
expiry: expiry
})).toString('base64');
var signature = crypto
.createHmac('sha256', FILEPICKER_KEY)
.update(policy)
.digest('hex');
return BASE_URL + "/" + handle +
"?signature=" + signature + "&policy=" + policy;
}
});
注意這將需要在一些地方存在的server
目錄裏面,所以你不發貨的客戶的鑰匙。爲了證明它的工作原理,在客戶端可以調用它像這樣:
Meteor.call('signedUrl', 'KW9EJhYtS6y48Whm2S6D', function(err, url){console.log(url)});
如果一切正常,你應該看到照片時您訪問返回的URL。
謝謝你這麼多,你救了我的天! –