]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/lib/uploadx.ts
Merge remote-tracking branch 'weblate/develop' into develop
[github/Chocobozzz/PeerTube.git] / server / lib / uploadx.ts
CommitLineData
6d472b40 1import express from 'express'
37ff5005 2import { buildLogger } from '@server/helpers/logger'
6d472b40 3import { getResumableUploadPath } from '@server/helpers/upload'
c0a9de66
C
4import { CONFIG } from '@server/initializers/config'
5import { LogLevel, Uploadx } from '@uploadx/core'
0c9668f7 6import { extname } from 'path'
c0a9de66
C
7
8const logger = buildLogger('uploadx')
6d472b40 9
293074ae
C
10const uploadx = new Uploadx({
11 directory: getResumableUploadPath(),
77d0ae7b
C
12
13 expiration: { maxAge: undefined, rolling: true },
14
293074ae 15 // Could be big with thumbnails/previews
2f0a0ae2 16 maxMetadataSize: '10MB',
77d0ae7b 17
c0a9de66
C
18 logger: {
19 logLevel: CONFIG.LOG.LEVEL as LogLevel,
20 debug: logger.debug.bind(logger),
21 info: logger.info.bind(logger),
22 warn: logger.warn.bind(logger),
23 error: logger.error.bind(logger)
24 },
37ff5005 25
2f0a0ae2
C
26 userIdentifier: (_, res: express.Response) => {
27 if (!res.locals.oauth) return undefined
28
29 return res.locals.oauth.token.user.id + ''
0c9668f7
C
30 },
31
32 filename: file => `${file.userId}-${file.id}${extname(file.metadata.filename)}`
293074ae 33})
6d472b40
C
34
35export {
36 uploadx
37}