FileController.coffee 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. PersistorManager = require("./PersistorManager")
  2. settings = require("settings-sharelatex")
  3. logger = require("logger-sharelatex")
  4. FileHandler = require("./FileHandler")
  5. metrics = require("./metrics")
  6. oneDayInSeconds = 60 * 60 * 24
  7. module.exports =
  8. getFile: (req, res)->
  9. metrics.inc "getFile"
  10. {key, bucket} = req
  11. {format, style} = req.query
  12. logger.log key:key, bucket:bucket, format:format, style:style, "reciving request to get file"
  13. FileHandler.getFile bucket, key, {format:format,style:style}, (err, fileStream)->
  14. if err?
  15. logger.err err:err, key:key, bucket:bucket, format:format, style:style, "problem getting file"
  16. res?.send? 500
  17. else if req.query.cacheWarm
  18. logger.log key:key, bucket:bucket, format:format, style:style, "request is only for cache warm so not sending stream"
  19. res.send 200
  20. else
  21. logger.log key:key, bucket:bucket, format:format, style:style, "sending file to response"
  22. fileStream.pipe res
  23. insertFile: (req, res)->
  24. metrics.inc "insertFile"
  25. {key, bucket} = req
  26. logger.log key:key, bucket:bucket, "reciving request to insert file"
  27. FileHandler.insertFile bucket, key, req, (err)->
  28. res.send 200
  29. copyFile: (req, res)->
  30. metrics.inc "copyFile"
  31. {key, bucket} = req
  32. oldProject_id = req.body.source.project_id
  33. oldFile_id = req.body.source.file_id
  34. logger.log key:key, bucket:bucket, oldProject_id:oldProject_id, oldFile_id:oldFile_id, "reciving request to copy file"
  35. PersistorManager.copyFile bucket, "#{oldProject_id}/#{oldFile_id}", key, (err)->
  36. if err?
  37. logger.log err:err, oldProject_id:oldProject_id, oldFile_id:oldFile_id, "something went wrong copying file"
  38. res.send 500
  39. else
  40. res.send 200
  41. deleteFile: (req, res)->
  42. metrics.inc "deleteFile"
  43. {key, bucket} = req
  44. logger.log key:key, bucket:bucket, "reciving request to delete file"
  45. FileHandler.deleteFile bucket, key, (err)->
  46. if err?
  47. logger.log err:err, key:key, bucket:bucket, "something went wrong deleting file"
  48. res.send 500
  49. else
  50. res.send 204