index.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. 'use strict'
  2. const express = require('express')
  3. const bodyParser = require('body-parser')
  4. const cors = require('cors')
  5. const compression = require('compression')
  6. const awsServerlessExpress = require('aws-serverless-express')
  7. const awsServerlessExpressMiddleware = require('aws-serverless-express/middleware')
  8. const uppy = require('@uppy/companion')
  9. const app = express()
  10. app.use(compression())
  11. app.use(cors())
  12. app.use(bodyParser.json())
  13. app.use(bodyParser.urlencoded({ extended: true }))
  14. app.use(awsServerlessExpressMiddleware.eventContext())
  15. const host = process.env.DOMAIN.split('://')[1]
  16. const protocol = process.env.DOMAIN.split('://')[0]
  17. const options = {
  18. providerOptions: {
  19. s3: {
  20. getKey: (req, filename) => filename,
  21. bucket: process.env.AWS_S3_BUCKET,
  22. region: process.env.AWS_S3_REGION
  23. },
  24. instagram: {
  25. key: process.env.INSTAGRAM_KEY,
  26. secret: process.env.INSTAGRAM_SECRET
  27. },
  28. google: {
  29. key: process.env.GOOGLE_KEY,
  30. secret: process.env.GOOGLE_SECRET
  31. },
  32. dropbox: {
  33. key: process.env.DROPBOX_KEY,
  34. secret: process.env.DROPBOX_SECRET
  35. }
  36. },
  37. server: {
  38. host: host,
  39. protocol: protocol
  40. }
  41. }
  42. app.use(uppy.app(options))
  43. const server = awsServerlessExpress.createServer(app)
  44. exports.uppy = (event, context) =>
  45. awsServerlessExpress.proxy(server, event, context)