2
0

uploads.js 658 B

123456789101112131415161718192021222324252627282930313233
  1. "use strict";
  2. var express = require('express');
  3. var router = express.Router();
  4. var _ = require('lodash');
  5. var validPathRe = new RegExp("^([a-z0-9\\/-]+\\.[a-z0-9]+)$");
  6. // ==========================================
  7. // SERVE UPLOADS FILES
  8. // ==========================================
  9. router.get('/*', (req, res, next) => {
  10. let fileName = req.params[0];
  11. if(!validPathRe.test(fileName)) {
  12. return res.sendStatus(404).end();
  13. }
  14. //todo: Authentication-based access
  15. res.sendFile(fileName, {
  16. root: git.getRepoPath() + '/uploads/',
  17. dotfiles: 'deny'
  18. }, (err) => {
  19. if (err) {
  20. res.status(err.status).end();
  21. }
  22. });
  23. });
  24. module.exports = router;