]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/lib/uploadx.ts
Merge remote-tracking branch 'weblate/develop' into develop
[github/Chocobozzz/PeerTube.git] / server / lib / uploadx.ts
index 36f5a556c6d7effb4d3bffc7c80290628bc590ea..c7e0eb414e8e501dd8f90d2e6722fd85e46cde2b 100644 (file)
@@ -1,13 +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 logger = buildLogger('uploadx')
 
 const uploadx = new Uploadx({
   directory: getResumableUploadPath(),
+
+  expiration: { maxAge: undefined, rolling: true },
+
   // Could be big with thumbnails/previews
-  maxMetadataSize: '10MB'
+  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)}`
 })
-uploadx.getUserId = (_, res: express.Response) => res.locals.oauth?.token.user.id
 
 export {
   uploadx