PeerTube/server/core/lib/uploadx.ts

38 lines
988 B
TypeScript
Raw Normal View History

import express from 'express'
import { buildLogger } from '@server/helpers/logger.js'
import { getResumableUploadPath } from '@server/helpers/upload.js'
import { CONFIG } from '@server/initializers/config.js'
2022-11-07 10:40:43 +01:00
import { LogLevel, Uploadx } from '@uploadx/core'
import { extname } from 'path'
2022-11-07 10:40:43 +01:00
const logger = buildLogger('uploadx')
2021-12-17 15:49:52 +01:00
const uploadx = new Uploadx({
directory: getResumableUploadPath(),
2022-04-19 11:44:03 +02:00
expiration: { maxAge: undefined, rolling: true },
2021-12-17 15:49:52 +01:00
// Could be big with thumbnails/previews
2022-01-18 09:29:46 +01:00
maxMetadataSize: '10MB',
2022-04-19 11:44:03 +02:00
2022-11-07 10:40:43 +01:00
logger: {
logLevel: CONFIG.LOG.LEVEL as LogLevel,
debug: logger.debug.bind(logger),
info: logger.info.bind(logger),
warn: logger.warn.bind(logger),
error: logger.error.bind(logger)
},
2022-10-28 10:47:06 +02:00
2022-01-18 09:29:46 +01:00
userIdentifier: (_, res: express.Response) => {
if (!res.locals.oauth) return undefined
return res.locals.oauth.token.user.id + ''
},
filename: file => `${file.userId}-${file.id}${extname(file.metadata.filename)}`
2021-12-17 15:49:52 +01:00
})
export {
uploadx
}