github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/public/libs/qiniu-js-sdk-master/demo/server.js (about) 1 var qiniu = require('qiniu'); 2 var express = require('express'); 3 var config = require('./config.js'); 4 var app = express(); 5 6 app.configure(function() { 7 app.use(express.static(__dirname + '/')); 8 }); 9 10 11 app.set('views', __dirname + '/views'); 12 app.engine('html', require('ejs').renderFile); 13 14 app.use(express.urlencoded()); 15 16 app.get('/uptoken', function(req, res, next) { 17 var token = uptoken.token(); 18 res.header("Cache-Control", "max-age=0, private, must-revalidate"); 19 res.header("Pragma", "no-cache"); 20 res.header("Expires", 0); 21 if (token) { 22 res.json({ 23 uptoken: token 24 }); 25 } 26 }); 27 28 app.post('/downtoken', function(req, res) { 29 30 var key = req.body.key, 31 domain = req.body.domain; 32 33 //trim 'http://' 34 if (domain.indexOf('http://') != -1) { 35 domain = domain.substr(7); 36 } 37 //trim 'https://' 38 if (domain.indexOf('https://') != -1) { 39 domain = domain.substr(8); 40 } 41 //trim '/' if the domain's last char is '/' 42 if (domain.lastIndexOf('/') === domain.length - 1) { 43 domain = domain.substr(0, domain.length - 1); 44 } 45 46 var baseUrl = qiniu.rs.makeBaseUrl(domain, key); 47 var deadline = 3600 + Math.floor(Date.now() / 1000); 48 49 baseUrl += '?e=' + deadline; 50 var signature = qiniu.util.hmacSha1(baseUrl, config.SECRET_KEY); 51 var encodedSign = qiniu.util.base64ToUrlSafe(signature); 52 var downloadToken = config.ACCESS_KEY + ':' + encodedSign; 53 54 if (downloadToken) { 55 res.json({ 56 downtoken: downloadToken, 57 url: baseUrl + '&token=' + downloadToken 58 }) 59 } 60 }); 61 62 app.get('/', function(req, res) { 63 res.render('index.html', { 64 domain: config.Domain, 65 uptoken_url: config.Uptoken_Url 66 }); 67 }); 68 69 qiniu.conf.ACCESS_KEY = config.ACCESS_KEY; 70 qiniu.conf.SECRET_KEY = config.SECRET_KEY; 71 72 var uptoken = new qiniu.rs.PutPolicy(config.Bucket_Name); 73 74 75 app.listen(config.Port, function() { 76 console.log('Listening on port %d', config.Port); 77 });