X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fuploadx.ts;h=c7e0eb414e8e501dd8f90d2e6722fd85e46cde2b;hb=5e47f6ab984a7d00782e4c7030afffa1ba480add;hp=11b1044db48f5fac6589baf3e96cf57d8bb88e05;hpb=9ea02c48a7a47b5bbed261e847d7d671e266a073;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/uploadx.ts b/server/lib/uploadx.ts index 11b1044db..c7e0eb414 100644 --- a/server/lib/uploadx.ts +++ b/server/lib/uploadx.ts @@ -1,9 +1,36 @@ import express from 'express' +import { buildLogger } from '@server/helpers/logger' import { getResumableUploadPath } from '@server/helpers/upload' -import { Uploadx } from '@uploadx/core' +import { CONFIG } from '@server/initializers/config' +import { LogLevel, Uploadx } from '@uploadx/core' +import { extname } from 'path' -const uploadx = new Uploadx({ directory: getResumableUploadPath() }) -uploadx.getUserId = (_, res: express.Response) => res.locals.oauth?.token.user.id +const logger = buildLogger('uploadx') + +const uploadx = new Uploadx({ + directory: getResumableUploadPath(), + + expiration: { maxAge: undefined, rolling: true }, + + // Could be big with thumbnails/previews + maxMetadataSize: '10MB', + + 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) + }, + + 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)}` +}) export { uploadx