这是我写的请求代码
var utils = require('./common/utils');
var http = require('http');
// var str = crypto.createHmac('sha1', 'qRLm5sjVOQmzdIRsx1mF9G8gseXC1r4BXZas3E8WY51z')
// .update('/buckets').digest().toString('base64');
var token = utils.encodeSign('/buckets', 'qRLm5sjVOQmzdIRsx1mF9G8gseXC1r4BXZas3E8WY51z');
console.log(token);
var option = {
host: 'rs.qbox.me',
path: '/buckets',
header: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `QBox 2H2hsnPVgPEHVumhuIstl7YEB6wsJ8sOkLvsLhLM5Ug:${token}`
}
};
http.get(option, function (res) {
var datastore = '';
res.on('data', function (chunk) {
datastore += chunk;
});
res.on('end', function (error) {
if (error) console.log(error);
console.log(datastore);
});
});
我尝试使用了七牛云的 uitls.js 来生成 accessToken,但还是失败了
var crypto = require('crypto');
var fs = require('fs');
var utils = exports;
utils.safeEncode = function(str) {
var encoded = new Buffer(str).toString('base64');
var rtn = encoded.replace(/\//g, '_').replace(/\+/g, '-');
return rtn;
};
utils.encodeSign = function(str, key) {
return utils.safeEncode(
crypto
.createHmac('sha1', key)
.update(str)
.digest()
);
};