FileController.coffee 2.0 KB

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