UNPKG

ks3

Version:

本代码库为`金山云存储KS3`服务.主要提供`KS3 nodejs SDK`和`命令行工具`.

84 lines (74 loc) 2.55 kB
var auth = require('../lib/auth'); var should = require('should'); var KS3 = require('..'); var ak ='WRHLHOZQD3OY3VTROMGQ'; var sk ='dWSmyMmVcpahaZphUdyVz11myMIoCAsOKeZ6wi4T'; describe('AUTH generateHeaders', function() { it('return a empty string if we havent passed param', function() { auth.generateHeaders().should.equal(''); }); it('should only handler spectical header', function() { var config = require('../config'); var prefix = config.prefix; var headers = { 'x-amz-test1': 'test1', 'x-amz-test2': 'test2', 'x-amz-test0': 'test0', 'x-amz-zest0': 'test0', 'x-kss-test1': 'test1', 'x-kss-test0': 'test0', 'amz-test0': 'test0' }; config.prefix = 'fake'; var fakeHeader = auth.generateHeaders(headers); fakeHeader.should.equal(''); config.prefix = 'amz'; var kssHeader = auth.generateHeaders(headers); kssHeader.should.equal('x-amz-test0:test0\nx-amz-test1:test1\nx-amz-test2:test2\nx-amz-zest0:test0'); config.prefix = 'kss'; var kssHeader = auth.generateHeaders(headers); kssHeader.should.equal('x-kss-test0:test0\nx-kss-test1:test1'); config.prefix = prefix; }); }); describe('AUTH generateToken', function() { it('should generate a legal token', function() { var body = ''; var reqSimple = { method: 'GET', date: 'Fri, 17 Oct 2014 10:08:22 GMT', uri: 'http://ks3-cn-beijing.ksyuncs.com', resource: '/' }; var tokenSimple = auth.generateToken(sk, reqSimple, body); tokenSimple.should.equal('2lxTJjvP1ndsKASapBxLeIUzhkQ='); var reqWithHeader = { method: 'PUT', date: 'Fri, 17 Oct 2014 10:00:18 GMT', uri: 'http://guoliang11.ks3-cn-beijing.ksyuncs.com/?acl', resource: '/guoliang11/?acl', headers: { attr_Acl: 'public-read-write' } }; var tokenWithHeader = auth.generateToken(sk, reqWithHeader, body); tokenWithHeader.should.equal('+V7+A8ib9uLqix87F8BRfTbcHSg='); }); it('should generate a legal signature with policy', function() { var policy = { "expiration": "2016-08-05T03:20:07.000Z", "conditions": [ ["eq","$bucket", "ks3-sdk-test"], ["starts-with", "$key", ""], ["starts-with","$acl", "public-read"], ["starts-with", "$name", ""] ] }; var signature = auth.getFormSignature(sk, policy); signature.should.equal('/zkVr/qF0Gfpt/BUh4wML+ccjHY='); }); it('should generate a legal signature for URL query string', function() { var signature = auth.getQueryStringSignature(sk, 1470364688, "myBucketName", "myObjectKey"); signature.should.equal('cmS1SEsm62qmgSyK3vrDKTFCPxQ='); }); });