12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- const fs = require('node:fs')
- const path = require('node:path')
- const crypto = require('node:crypto')
- const companion = require('@uppy/companion')
- require('dotenv').config({ path: path.join(__dirname, '..', '..', '.env') })
- const app = require('express')()
- const DATA_DIR = path.join(__dirname, 'tmp')
- app.use(require('cors')({
- origin: 'http://localhost:3000',
- methods: ['GET', 'POST', 'OPTIONS'],
- credentials: true,
- }))
- app.use(require('cookie-parser')())
- app.use(require('body-parser').json())
- app.use(require('express-session')({
- secret: 'hello planet',
- saveUninitialized: false,
- resave: false,
- }))
- const options = {
- providerOptions: {
- drive: {
- key: process.env.COMPANION_GOOGLE_KEY,
- secret: process.env.COMPANION_GOOGLE_SECRET,
- },
- },
- s3: {
- getKey: ({ filename }) => `${crypto.randomUUID()}-${filename}`,
- key: process.env.COMPANION_AWS_KEY,
- secret: process.env.COMPANION_AWS_SECRET,
- bucket: process.env.COMPANION_AWS_BUCKET,
- region: process.env.COMPANION_AWS_REGION,
- endpoint: process.env.COMPANION_AWS_ENDPOINT,
- forcePathStyle: process.env.COMPANION_AWS_FORCE_PATH_STYLE === 'true',
- },
- server: { host: 'localhost:3020' },
- filePath: DATA_DIR,
- secret: 'blah blah',
- debug: true,
- }
- // Create the data directory here for the sake of the example.
- try {
- fs.accessSync(DATA_DIR)
- } catch (err) {
- fs.mkdirSync(DATA_DIR)
- }
- process.on('exit', () => {
- fs.rmSync(DATA_DIR, { recursive: true, force: true })
- })
- const { app: companionApp } = companion.app(options)
- app.use(companionApp)
- const server = app.listen(3020, () => {
- console.log('listening on port 3020')
- })
- companion.socket(server)
|