dvonlehman / s3-proxy

4front plugin to proxy read calls to S3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Express route is taken as s3 route part.

fdorantesm opened this issue · comments

Hi, Von.

I solved this issue using req.params[0] instead req.originalUrl but i can't' make test pass for 404 error.

Unorthodox solution:

req.originalUrl = req.originalUrl.replace('static', '')
app.get('/static/*', (req, res, next) => {
    req.originalUrl = req.originalUrl.replace(process.env.S3_PROXY_PATH, '')
    return s3Proxy({
      bucket: process.env.AWS_S3_BUCKET,
      accessKeyId: process.env.AWS_S3_ACCESS_KEY_ID,
      secretAccessKey: process.env.AWS_S3_SECRET_ACCESS_KEY
    })(req, res, next)
  })

Same here. Except I placed the logic into middleware that is run immediately before the proxy.

FYI - you can also make it a little simpler by using a dedicated sub-app for your proxy:

So, something like:

var proxy = express();
proxy.get('/*', s3Proxy({
  bucket: process.env.AWS_S3_BUCKET,
  accessKeyId: process.env.AWS_S3_ACCESS_KEY_ID,
  secretAccessKey: process.env.AWS_S3_SECRET_ACCESS_KEY
 }));
app.use("/static", proxy);