| 123456789101112131415161718192021222324 |
- import Path from 'node:path'
- import send from 'send'
- import Settings from '@overleaf/settings'
- import OutputCacheManager from './OutputCacheManager.js'
- const ONE_DAY_S = 24 * 60 * 60
- const ONE_DAY_MS = ONE_DAY_S * 1000
- function getPdfRange(req, res, next) {
- const { projectId, userId, contentId, hash } = req.params
- const perUserDir = userId ? `${projectId}-${userId}` : projectId
- const path = Path.join(
- Settings.path.outputDir,
- perUserDir,
- OutputCacheManager.CONTENT_SUBDIR,
- contentId,
- hash
- )
- res.setHeader('cache-control', `public, max-age=${ONE_DAY_S}`)
- res.setHeader('expires', new Date(Date.now() + ONE_DAY_MS).toUTCString())
- send(req, path).pipe(res)
- }
- export default { getPdfRange }
|