index.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. 'use strict'
  2. const express = require('express')
  3. const bodyParser = require('body-parser')
  4. const cors = require('cors')
  5. const session = require('express-session')
  6. const compression = require('compression')
  7. const awsServerlessExpress = require('aws-serverless-express')
  8. const awsServerlessExpressMiddleware = require('aws-serverless-express/middleware')
  9. const companion = require('@uppy/companion')
  10. const app = express()
  11. app.use(compression())
  12. app.use(cors())
  13. app.use(session({
  14. secret: process.env.SESSION_SECRET,
  15. resave: true,
  16. saveUninitialized: true
  17. }))
  18. app.use(bodyParser.json())
  19. app.use(bodyParser.urlencoded({ extended: false }))
  20. app.use(awsServerlessExpressMiddleware.eventContext())
  21. const host = process.env.DOMAIN.split('://')[1]
  22. const protocol = process.env.DOMAIN.split('://')[0]
  23. const options = {
  24. providerOptions: {
  25. s3: {
  26. getKey: (req, filename) => filename,
  27. bucket: process.env.AWS_S3_BUCKET,
  28. region: process.env.AWS_S3_REGION
  29. },
  30. instagram: {
  31. key: process.env.INSTAGRAM_KEY,
  32. secret: process.env.INSTAGRAM_SECRET
  33. },
  34. google: {
  35. key: process.env.GOOGLE_KEY,
  36. secret: process.env.GOOGLE_SECRET
  37. },
  38. dropbox: {
  39. key: process.env.DROPBOX_KEY,
  40. secret: process.env.DROPBOX_SECRET
  41. }
  42. },
  43. server: {
  44. host: host,
  45. protocol: protocol
  46. },
  47. filePath: '/tmp',
  48. secret: process.env.UPPY_SECRET
  49. }
  50. app.use(companion.app(options))
  51. app.get('/', (req, res) => {
  52. res.setHeader('Content-Type', 'text/plain')
  53. res.send("Hello there, here's a response from companion")
  54. })
  55. const server = awsServerlessExpress.createServer(app)
  56. exports.companion = (event, context) =>
  57. awsServerlessExpress.proxy(server, event, context)