| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- const proxy = require('express-http-proxy')
- const use = true
- const gate = process.env.VUE_APP_GATEWAY
- const base_url = process.env.VUE_APP_BASE_API
- const mapKey = process.env.VUE_APP_OFFLINE_MAP.replace(base_url, '')
- const minioKey = process.env.VUE_APP_MINIO.replace(base_url, '')
- const thumbnailKey = process.env.VUE_APP_THUMBNAIL.replace(base_url, '')
- const isHttps = url => !/^[0-9.:]+$/.test(url)
- module.exports = {
- register (router) {
- if (use) {
- router.use(mapKey, createProxy(process.env.VUE_APP_OFFLINE_MAP_GATEWAY, process.env.VUE_APP_OFFLINE_MAP_PROXY))
- router.use(minioKey, createProxy(gate, minioKey))
- router.use(thumbnailKey, createThumbnailProxy(gate))
- router.use('/', createProxy(gate, '/prod-api'))
- }
- }
- }
- function createProxy (to, replace) {
- return proxy(to, {
- https: isHttps(to),
- parseReqBody: false,
- proxyReqPathResolver (req) {
- const url = replace ? `${replace}${req.url}` : req.url
- console.log(`proxy ${url} to ${to}`)
- return url
- }
- })
- }
- function createThumbnailProxy (to) {
- return proxy(to, {
- https: isHttps(to),
- parseReqBody: false,
- proxyReqPathResolver (req) {
- const url = `${thumbnailKey}${req.url.replace(new RegExp(`http.*${minioKey}`), `http${isHttps ? 's' : ''}://${gate}${minioKey}`)}`
- console.log(`thumbnail ${url} to ${to}`)
- return url
- }
- })
- }
|