Advertisement
Guest User

Untitled

a guest
Oct 24th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. server.route({
  2. method: 'GET',
  3. path: '/videos/movie/{token}',
  4. handler: function(req, reply) {
  5.  
  6. let file = path.join(__dirname, 'movie.mp4');
  7.  
  8. if(req.headers.range) {
  9.  
  10. var positions = req.headers.range.replace(/bytes=/, '').split('-');
  11.  
  12. var start = parseInt(positions[0], 10);
  13.  
  14. fs.stat(file, function(err, stats) {
  15.  
  16. var total = stats.size;
  17. var end = positions[1] ? parseInt(positions[1], 10) : total - 1;
  18. var chunksize = (end - start) + 1;
  19.  
  20.  
  21. var stream = fs.createReadStream(file, {
  22. start: start,
  23. end: end
  24. });
  25. // .on('open', () => console.log('open'))
  26. // .on('error', (err) => console.log('error', err))
  27. // .on('close', () => console.log('close'));
  28.  
  29.  
  30. reply(null, stream)
  31. .code(206)
  32. .header('Content-Range', `bytes ${start}-${end}/${total}`)
  33. .header('Accept-Ranges', 'bytes')
  34. .header('Content-Length', chunksize)
  35. .header('Content-Type', 'video/mp4');
  36.  
  37. });
  38.  
  39. } else {
  40. reply(Boom.unauthorized('Cant download video'));
  41. }
  42.  
  43.  
  44.  
  45. }
  46. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement