add proxy

This commit is contained in:
Eddie Wang 2019-12-20 17:33:21 -08:00
parent ce6f536791
commit 91a67178bb
No known key found for this signature in database
GPG Key ID: 595553ADC5949F24
3 changed files with 37 additions and 4 deletions

View File

@ -15,6 +15,7 @@
"cors": "2.8.5", "cors": "2.8.5",
"express": "^4.14.0", "express": "^4.14.0",
"express-fileupload": "1.1.6", "express-fileupload": "1.1.6",
"express-http-proxy": "1.6.0",
"express-session": "1.17.0", "express-session": "1.17.0",
"ramda": "0.26.1", "ramda": "0.26.1",
"shortid": "2.2.15", "shortid": "2.2.15",

View File

@ -3,6 +3,7 @@ import * as shortid from "shortid"
import * as fileUpload from "express-fileupload" import * as fileUpload from "express-fileupload"
import * as R from "ramda" import * as R from "ramda"
import * as cors from "cors" import * as cors from "cors"
import * as proxy from "express-http-proxy"
import axios from "axios" import axios from "axios"
const SIAD_ENDPOINT = "http://localhost:9980" const SIAD_ENDPOINT = "http://localhost:9980"
@ -71,6 +72,19 @@ export class Server {
// siafile // siafile
this.app.post("/siafile", this.postSiaFile) this.app.post("/siafile", this.postSiaFile)
// linkfile // linkfile
this.app.get(
"/linkfile/:hash",
proxy("http://localhost:9980/renter/sialink", {
proxyReqOptDecorator: (opts, _) => {
opts.headers["User-Agent"] = "Sia-Agent"
return opts
},
proxyReqPathResolver: req => {
const { hash } = req.params
return `/renter/sialink/${hash}`
}
})
)
this.app.post("/linkfile", this.handleLinkUpload) this.app.post("/linkfile", this.handleLinkUpload)
} }
@ -85,7 +99,6 @@ export class Server {
const uid = shortid.generate() const uid = shortid.generate()
console.log("uid:", uid) console.log("uid:", uid)
try { try {
// TODO: add uuid so we don't collide
const { data } = await siad.post( const { data } = await siad.post(
`/renter/linkfile/linkfiles/${uid}`, `/renter/linkfile/linkfiles/${uid}`,
fileToUpload.data, fileToUpload.data,

View File

@ -3765,7 +3765,7 @@ debug@3.1.0, debug@=3.1.0:
dependencies: dependencies:
ms "2.0.0" ms "2.0.0"
debug@^3.1.0, debug@^3.2.6: debug@^3.0.1, debug@^3.1.0, debug@^3.2.6:
version "3.2.6" version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@ -4146,7 +4146,7 @@ es6-iterator@~2.0.3:
es5-ext "^0.10.35" es5-ext "^0.10.35"
es6-symbol "^3.1.1" es6-symbol "^3.1.1"
es6-promise@^4.0.3: es6-promise@^4.0.3, es6-promise@^4.1.1:
version "4.2.8" version "4.2.8"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
@ -4275,6 +4275,15 @@ express-fileupload@1.1.6:
dependencies: dependencies:
busboy "^0.3.1" busboy "^0.3.1"
express-http-proxy@1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/express-http-proxy/-/express-http-proxy-1.6.0.tgz#8672b1093cc96b8a93e8e3da948dd111a668ef22"
integrity sha512-7Re6Lepg96NA2wiv7DC5csChAScn4K76/UgYnC71XiITCT1cgGTJUGK6GS0pIixudg3Fbx3Q6mmEW3mZv5tHFQ==
dependencies:
debug "^3.0.1"
es6-promise "^4.1.1"
raw-body "^2.3.0"
express-session@1.17.0: express-session@1.17.0:
version "1.17.0" version "1.17.0"
resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.0.tgz#9b50dbb5e8a03c3537368138f072736150b7f9b3" resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.0.tgz#9b50dbb5e8a03c3537368138f072736150b7f9b3"
@ -5011,7 +5020,7 @@ http-errors@1.7.2:
statuses ">= 1.5.0 < 2" statuses ">= 1.5.0 < 2"
toidentifier "1.0.0" toidentifier "1.0.0"
http-errors@~1.7.2: http-errors@1.7.3, http-errors@~1.7.2:
version "1.7.3" version "1.7.3"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
@ -7956,6 +7965,16 @@ raw-body@2.4.0:
iconv-lite "0.4.24" iconv-lite "0.4.24"
unpipe "1.0.0" unpipe "1.0.0"
raw-body@^2.3.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
dependencies:
bytes "3.1.0"
http-errors "1.7.3"
iconv-lite "0.4.24"
unpipe "1.0.0"
rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
version "1.2.8" version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"