| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- const settings = require('@overleaf/settings')
- module.exports = {
- getConvertedFolderKey,
- addCachingToKey,
- userFileKeyMiddleware,
- userProjectKeyMiddleware,
- publicFileKeyMiddleware,
- publicProjectKeyMiddleware,
- bucketFileKeyMiddleware,
- templateFileKeyMiddleware,
- }
- function getConvertedFolderKey(key) {
- return `${key}-converted-cache/`
- }
- function addCachingToKey(key, opts) {
- key = this.getConvertedFolderKey(key)
- if (opts.format && !opts.style) {
- key = `${key}format-${opts.format}`
- }
- if (opts.style && !opts.format) {
- key = `${key}style-${opts.style}`
- }
- if (opts.style && opts.format) {
- key = `${key}format-${opts.format}-style-${opts.style}`
- }
- return key
- }
- function userFileKeyMiddleware(req, res, next) {
- const { project_id: projectId, file_id: fileId } = req.params
- req.key = `${projectId}/${fileId}`
- req.bucket = settings.filestore.stores.user_files
- next()
- }
- function userProjectKeyMiddleware(req, res, next) {
- const { project_id: projectId } = req.params
- req.key = `${projectId}/`
- req.bucket = settings.filestore.stores.user_files
- next()
- }
- function publicFileKeyMiddleware(req, res, next) {
- if (settings.filestore.stores.public_files == null) {
- return res.status(501).send('public files not available')
- }
- const { project_id: projectId, public_file_id: publicFileId } = req.params
- req.key = `${projectId}/${publicFileId}`
- req.bucket = settings.filestore.stores.public_files
- next()
- }
- function bucketFileKeyMiddleware(req, res, next) {
- req.bucket = req.params.bucket
- req.key = req.params[0]
- next()
- }
- function templateFileKeyMiddleware(req, res, next) {
- const {
- template_id: templateId,
- format,
- version,
- sub_type: subType,
- } = req.params
- req.key = `${templateId}/v/${version}/${format}`
- if (subType) {
- req.key = `${req.key}/${subType}`
- }
- req.bucket = settings.filestore.stores.template_files
- req.version = version
- next()
- }
- function publicProjectKeyMiddleware(req, res, next) {
- const { project_id: projectId } = req.params
- req.project_id = projectId
- req.bucket = settings.filestore.stores.user_files
- next()
- }
|