From 42467bc3d8e07159ca290fbb1cf7d673ccb45cd3 Mon Sep 17 00:00:00 2001 From: Oleg Lobanov Date: Mon, 31 Jul 2023 13:18:18 +0200 Subject: [PATCH] fix: tus url generation --- frontend/src/api/files.js | 6 +----- frontend/src/api/tus.js | 21 +++++++++++++-------- frontend/src/api/utils.js | 7 ------- frontend/src/utils/constants.js | 2 +- 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/frontend/src/api/files.js b/frontend/src/api/files.js index eb0db157..1c2ea80a 100644 --- a/frontend/src/api/files.js +++ b/frontend/src/api/files.js @@ -1,8 +1,7 @@ -import { createURL, fetchURL, removePrefix, removeTusEndpoint } from "./utils"; +import { createURL, fetchURL, removePrefix } from "./utils"; import { baseURL } from "@/utils/constants"; import store from "@/store"; import { upload as postTus, useTus } from "./tus"; -import { tusEndpoint } from "../utils/constants"; export async function fetch(url) { url = removePrefix(url); @@ -89,9 +88,6 @@ export async function post(url, content = "", overwrite = false, onupload) { !["http:", "https:"].includes(window.location.protocol)) || // Tus is disabled / not applicable !(await useTus(content)); - if (!useResourcesApi) { - url = removeTusEndpoint(tusEndpoint, url); - } return useResourcesApi ? postResources(url, content, overwrite, onupload) : postTus(url, content, overwrite, onupload); diff --git a/frontend/src/api/tus.js b/frontend/src/api/tus.js index 47e443b4..bda4f40c 100644 --- a/frontend/src/api/tus.js +++ b/frontend/src/api/tus.js @@ -1,5 +1,5 @@ import * as tus from "tus-js-client"; -import { tusEndpoint, tusSettings } from "@/utils/constants"; +import { baseURL, tusEndpoint, tusSettings } from "@/utils/constants"; import store from "@/store"; import { removePrefix } from "@/api/utils"; import { fetchURL } from "./utils"; @@ -7,20 +7,25 @@ import { fetchURL } from "./utils"; const RETRY_BASE_DELAY = 1000; const RETRY_MAX_DELAY = 20000; -export async function upload(url, content = "", overwrite = false, onupload) { +export async function upload( + filePath, + content = "", + overwrite = false, + onupload +) { if (!tusSettings) { // Shouldn't happen as we check for tus support before calling this function throw new Error("Tus.io settings are not defined"); } - url = removePrefix(url); - let resourceUrl = `${tusEndpoint}${url}?override=${overwrite}`; + filePath = removePrefix(filePath); + let resourcePath = `${tusEndpoint}${filePath}?override=${overwrite}`; - await createUpload(resourceUrl); + await createUpload(resourcePath); return new Promise((resolve, reject) => { let upload = new tus.Upload(content, { - uploadUrl: resourceUrl, + uploadUrl: `${baseURL}${resourcePath}`, chunkSize: tusSettings.chunkSize, retryDelays: computeRetryDelays(tusSettings), parallelUploads: 1, @@ -46,8 +51,8 @@ export async function upload(url, content = "", overwrite = false, onupload) { }); } -async function createUpload(resourceUrl) { - let headResp = await fetchURL(resourceUrl, { +async function createUpload(resourcePath) { + let headResp = await fetchURL(resourcePath, { method: "POST", }); if (headResp.status !== 201) { diff --git a/frontend/src/api/utils.js b/frontend/src/api/utils.js index e1809f7c..7883c4ce 100644 --- a/frontend/src/api/utils.js +++ b/frontend/src/api/utils.js @@ -78,10 +78,3 @@ export function createURL(endpoint, params = {}, auth = true) { return url.toString(); } - -export function removeTusEndpoint(tusEndpoint, url) { - if (url.startsWith(tusEndpoint)) { - return url.substring(tusEndpoint.length); - } - return url; -} diff --git a/frontend/src/utils/constants.js b/frontend/src/utils/constants.js index b4212a08..2dbe44a1 100644 --- a/frontend/src/utils/constants.js +++ b/frontend/src/utils/constants.js @@ -17,7 +17,7 @@ const resizePreview = window.FileBrowser.ResizePreview; const enableExec = window.FileBrowser.EnableExec; const tusSettings = window.FileBrowser.TusSettings; const origin = window.location.origin; -const tusEndpoint = `${baseURL}/api/tus`; +const tusEndpoint = `/api/tus`; export { name,