OutputController.js 610 B

1234567891011121314151617181920212223
  1. import OutputFileArchiveManager from './OutputFileArchiveManager.js'
  2. import { expressify } from '@overleaf/promise-utils'
  3. import { pipeline } from '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. export default { createOutputZip: expressify(createOutputZip) }