mirror of https://github.com/qwqdanchun/ant.git
78 lines
2.0 KiB
JavaScript
78 lines
2.0 KiB
JavaScript
var qiniu = require('qiniu');
|
|
var express = require('express');
|
|
var config = require('./config.js');
|
|
var app = express();
|
|
|
|
app.configure(function() {
|
|
app.use(express.static(__dirname + '/'));
|
|
});
|
|
|
|
|
|
app.set('views', __dirname + '/views');
|
|
app.engine('html', require('ejs').renderFile);
|
|
|
|
app.use(express.urlencoded());
|
|
|
|
app.get('/uptoken', function(req, res, next) {
|
|
var token = uptoken.token();
|
|
res.header("Cache-Control", "max-age=0, private, must-revalidate");
|
|
res.header("Pragma", "no-cache");
|
|
res.header("Expires", 0);
|
|
if (token) {
|
|
res.json({
|
|
uptoken: token
|
|
});
|
|
}
|
|
});
|
|
|
|
app.post('/downtoken', function(req, res) {
|
|
|
|
var key = req.body.key,
|
|
domain = req.body.domain;
|
|
|
|
//trim 'http://'
|
|
if (domain.indexOf('http://') != -1) {
|
|
domain = domain.substr(7);
|
|
}
|
|
//trim 'https://'
|
|
if (domain.indexOf('https://') != -1) {
|
|
domain = domain.substr(8);
|
|
}
|
|
//trim '/' if the domain's last char is '/'
|
|
if (domain.lastIndexOf('/') === domain.length - 1) {
|
|
domain = domain.substr(0, domain.length - 1);
|
|
}
|
|
|
|
var baseUrl = qiniu.rs.makeBaseUrl(domain, key);
|
|
var deadline = 3600 + Math.floor(Date.now() / 1000);
|
|
|
|
baseUrl += '?e=' + deadline;
|
|
var signature = qiniu.util.hmacSha1(baseUrl, config.SECRET_KEY);
|
|
var encodedSign = qiniu.util.base64ToUrlSafe(signature);
|
|
var downloadToken = config.ACCESS_KEY + ':' + encodedSign;
|
|
|
|
if (downloadToken) {
|
|
res.json({
|
|
downtoken: downloadToken,
|
|
url: baseUrl + '&token=' + downloadToken
|
|
})
|
|
}
|
|
});
|
|
|
|
app.get('/', function(req, res) {
|
|
res.render('index.html', {
|
|
domain: config.Domain,
|
|
uptoken_url: config.Uptoken_Url
|
|
});
|
|
});
|
|
|
|
qiniu.conf.ACCESS_KEY = config.ACCESS_KEY;
|
|
qiniu.conf.SECRET_KEY = config.SECRET_KEY;
|
|
|
|
var uptoken = new qiniu.rs.PutPolicy(config.Bucket_Name);
|
|
|
|
|
|
app.listen(config.Port, function() {
|
|
console.log('Listening on port %d', config.Port);
|
|
});
|