--------- Co-authored-by: 이광오 <maeryo@hanwha.com> Co-authored-by: Oleg Lobanov <oleg.lobanov@bitvavo.com>pull/2501/head^2
parent
2a4a46c61a
commit
4b72bbfc7f
|
@ -88,7 +88,6 @@ export async function post(url, content = "", overwrite = false, onupload) {
|
||||||
!["http:", "https:"].includes(window.location.protocol)) ||
|
!["http:", "https:"].includes(window.location.protocol)) ||
|
||||||
// Tus is disabled / not applicable
|
// Tus is disabled / not applicable
|
||||||
!(await useTus(content));
|
!(await useTus(content));
|
||||||
|
|
||||||
return useResourcesApi
|
return useResourcesApi
|
||||||
? postResources(url, content, overwrite, onupload)
|
? postResources(url, content, overwrite, onupload)
|
||||||
: postTus(url, content, overwrite, onupload);
|
: postTus(url, content, overwrite, onupload);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import * as tus from "tus-js-client";
|
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 store from "@/store";
|
||||||
import { removePrefix } from "@/api/utils";
|
import { removePrefix } from "@/api/utils";
|
||||||
import { fetchURL } from "./utils";
|
import { fetchURL } from "./utils";
|
||||||
|
@ -7,20 +7,25 @@ import { fetchURL } from "./utils";
|
||||||
const RETRY_BASE_DELAY = 1000;
|
const RETRY_BASE_DELAY = 1000;
|
||||||
const RETRY_MAX_DELAY = 20000;
|
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) {
|
if (!tusSettings) {
|
||||||
// Shouldn't happen as we check for tus support before calling this function
|
// Shouldn't happen as we check for tus support before calling this function
|
||||||
throw new Error("Tus.io settings are not defined");
|
throw new Error("Tus.io settings are not defined");
|
||||||
}
|
}
|
||||||
|
|
||||||
url = removePrefix(url);
|
filePath = removePrefix(filePath);
|
||||||
let resourceUrl = `${tusEndpoint}${url}?override=${overwrite}`;
|
let resourcePath = `${tusEndpoint}${filePath}?override=${overwrite}`;
|
||||||
|
|
||||||
await createUpload(resourceUrl);
|
await createUpload(resourcePath);
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let upload = new tus.Upload(content, {
|
let upload = new tus.Upload(content, {
|
||||||
uploadUrl: resourceUrl,
|
uploadUrl: `${baseURL}${resourcePath}`,
|
||||||
chunkSize: tusSettings.chunkSize,
|
chunkSize: tusSettings.chunkSize,
|
||||||
retryDelays: computeRetryDelays(tusSettings),
|
retryDelays: computeRetryDelays(tusSettings),
|
||||||
parallelUploads: 1,
|
parallelUploads: 1,
|
||||||
|
@ -46,8 +51,8 @@ export async function upload(url, content = "", overwrite = false, onupload) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async function createUpload(resourceUrl) {
|
async function createUpload(resourcePath) {
|
||||||
let headResp = await fetchURL(resourceUrl, {
|
let headResp = await fetchURL(resourcePath, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
});
|
});
|
||||||
if (headResp.status !== 201) {
|
if (headResp.status !== 201) {
|
||||||
|
|
|
@ -8,7 +8,6 @@ export async function fetchURL(url, opts, auth = true) {
|
||||||
opts.headers = opts.headers || {};
|
opts.headers = opts.headers || {};
|
||||||
|
|
||||||
let { headers, ...rest } = opts;
|
let { headers, ...rest } = opts;
|
||||||
|
|
||||||
let res;
|
let res;
|
||||||
try {
|
try {
|
||||||
res = await fetch(`${baseURL}${url}`, {
|
res = await fetch(`${baseURL}${url}`, {
|
||||||
|
|
|
@ -17,7 +17,7 @@ const resizePreview = window.FileBrowser.ResizePreview;
|
||||||
const enableExec = window.FileBrowser.EnableExec;
|
const enableExec = window.FileBrowser.EnableExec;
|
||||||
const tusSettings = window.FileBrowser.TusSettings;
|
const tusSettings = window.FileBrowser.TusSettings;
|
||||||
const origin = window.location.origin;
|
const origin = window.location.origin;
|
||||||
const tusEndpoint = `${baseURL}/api/tus`;
|
const tusEndpoint = `/api/tus`;
|
||||||
|
|
||||||
export {
|
export {
|
||||||
name,
|
name,
|
||||||
|
|
Loading…
Reference in New Issue