uploadx.ts 988 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import express from 'express'
  2. import { buildLogger } from '@server/helpers/logger.js'
  3. import { getResumableUploadPath } from '@server/helpers/upload.js'
  4. import { CONFIG } from '@server/initializers/config.js'
  5. import { LogLevel, Uploadx } from '@uploadx/core'
  6. import { extname } from 'path'
  7. const logger = buildLogger('uploadx')
  8. const uploadx = new Uploadx({
  9. directory: getResumableUploadPath(),
  10. expiration: { maxAge: undefined, rolling: true },
  11. // Could be big with thumbnails/previews
  12. maxMetadataSize: '10MB',
  13. logger: {
  14. logLevel: CONFIG.LOG.LEVEL as LogLevel,
  15. debug: logger.debug.bind(logger),
  16. info: logger.info.bind(logger),
  17. warn: logger.warn.bind(logger),
  18. error: logger.error.bind(logger)
  19. },
  20. userIdentifier: (_, res: express.Response) => {
  21. if (!res.locals.oauth) return undefined
  22. return res.locals.oauth.token.user.id + ''
  23. },
  24. filename: file => `${file.userId}-${file.id}${extname(file.metadata.filename)}`
  25. })
  26. export {
  27. uploadx
  28. }