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  });