OutputController.js 624 B

1234567891011121314151617181920212223
  1. const OutputFileArchiveManager = require('./OutputFileArchiveManager')
  2. const { expressify } = require('@overleaf/promise-utils')
  3. const { pipeline } = require('node:stream/promises')
  4. async function createOutputZip(req, res) {
  5. const {
  6. project_id: projectId,
  7. user_id: userId,
  8. build_id: buildId,
  9. } = req.params
  10. const archive = await OutputFileArchiveManager.archiveFilesForBuild(
  11. projectId,
  12. userId,
  13. buildId
  14. )
  15. res.attachment('output.zip')
  16. res.setHeader('X-Content-Type-Options', 'nosniff')
  17. await pipeline(archive, res)
  18. }
  19. module.exports = { createOutputZip: expressify(createOutputZip) }