From bb1d84eac8ea755adddbd7bdfd2e0e5e886354a6 Mon Sep 17 00:00:00 2001 From: Greg Fodor Date: Mon, 17 Feb 2020 06:05:42 +0000 Subject: [PATCH] Perform upload to server directly --- src/api/Api.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/api/Api.js b/src/api/Api.js index cd2a4cd85..284162cc6 100644 --- a/src/api/Api.js +++ b/src/api/Api.js @@ -910,8 +910,12 @@ export default class Project extends EventEmitter { return project; } - upload(blob, onUploadProgress, signal) { - return new Promise((resolve, reject) => { + async upload(blob, onUploadProgress, signal) { + // Use direct upload API, see: https://github.com/mozilla/reticulum/pull/319 + const { phx_host: uploadHost } = await (await this.fetch(`https://${RETICULUM_SERVER}/api/v1/meta`)).json(); + const uploadPort = new URL(`https://${RETICULUM_SERVER}`).port; + + await new Promise((resolve, reject) => { const request = new XMLHttpRequest(); const onAbort = () => { @@ -926,7 +930,7 @@ export default class Project extends EventEmitter { signal.addEventListener("abort", onAbort); } - request.open("post", `https://${RETICULUM_SERVER}/api/v1/media`, true); + request.open("post", `https://${uploadHost}:${uploadPort}/api/v1/media`, true); request.upload.addEventListener("progress", e => { if (onUploadProgress) {