mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-17 16:50:22 +00:00
69 lines
1.7 KiB
JavaScript
69 lines
1.7 KiB
JavaScript
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:5173',
|
|
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,
|
|
corsOrigins: 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, options)
|