qiniu-auth
Version:
为七牛云操作提供加密支持
81 lines (75 loc) • 3.06 kB
JavaScript
try {
require('./resource/qiniu.config');
} catch (error) {
throw new Error(`
先配置你的/test/resource/qiniu.config.json文件再测试
qiniu.config.json是放置AccessKey和SecretKey的配置文件
1. 配置你的AccessKey和SecretKey到/test/resource/qiniu.config.default.json
2. qiniu.config.default.json 改名为qiniu.config.json
`);
}
const expect = require('chai').expect;
const rp = require('node-request-slim').promise;
const qiniu_config = require('./resource/qiniu.config');
const qiniu_auth = require('../');
const debug = require('debug')('test');
describe('4. pandora(API 签名)相关测试', function(){
it('使用token签名发送请求', async function(){
// 构建数据内容
let body = '';
[{ userName: '小张', age: 12, addresses: "beijing"},
{ userName: '小王', age: 13, addresses: "hangzhou"}
].forEach(item => {
for (let key in item) {
body += key + '=' + item[key] + '\t';
}
body += '\n';
});
// 构建请求参数,设置api签名
let request_options = {
method: 'POST',
path: '/v2/repos/' + Date.now() + '/data',
headers: {
'content-type': 'text/plain'
},
body: body
};
request_options.url = 'https://nb-pipeline.qiniuapi.com' + request_options.path;
// 生成api签名
request_options.headers['Authorization'] = qiniu_auth.pandora.call(qiniu_config, request_options);
let result = await rp(request_options);
debug('使用token签名发送请求并返回:%s', JSON.stringify(result));
// 因为repoName是不存在的statusCode为404,会报错的,所以这里catch了
// E18102这个错误只是提示没有repo,但是操作是正确的没有问题的
expect(/E18102: The specified repo ".+" does not exist/.test(result.error)).to.be.ok;
});
it('使用AK/SK签名发送请求', async function(){
// 构建数据内容
let body = '';
[{ userName: '小张', age: 12, addresses: "beijing"},
{ userName: '小王', age: 13, addresses: "hangzhou"}
].forEach(item => {
for (let key in item) {
body += key + '=' + item[key] + '\t';
}
body += '\n';
});
// 构建请求参数,设置api签名
let request_options = {
method: 'POST',
path: '/v2/repos/' + Date.now() + '/data',
headers: {
'content-type': 'text/plain'
},
body: body
};
request_options.url = 'https://nb-pipeline.qiniuapi.com' + request_options.path;
// 生成api签名
request_options.headers['Authorization'] = qiniu_auth.pandora.AK_SK.call(qiniu_config, request_options);
let result = await rp(request_options);
debug('使用AK/SK签名发送请求并返回:%s', JSON.stringify(result));
// 因为repoName是不存在的statusCode为404,会报错的,所以这里catch了
// E18102这个错误只是提示没有repo,但是操作是正确的没有问题的
expect(/E18102: The specified repo ".+" does not exist/.test(result.error)).to.be.ok;
});
});