From a5ffd235fda6c8f7c4075d8e4e4fe1a88a106649 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Wed, 5 Jul 2023 19:02:04 +0000 Subject: [PATCH] fix upload queue --- .../src/cores/remoteStorage/remoteStorage.core.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/app/src/cores/remoteStorage/remoteStorage.core.js b/packages/app/src/cores/remoteStorage/remoteStorage.core.js index 24ed5260..06de5918 100755 --- a/packages/app/src/cores/remoteStorage/remoteStorage.core.js +++ b/packages/app/src/cores/remoteStorage/remoteStorage.core.js @@ -9,6 +9,7 @@ class ChunkedUpload { this.headers = params.headers || {} this.postParams = params.postParams this.chunkSize = params.chunkSize || 1000000 + this.service = params.service ?? "default" this.retries = params.retries ?? app.cores.settings.get("uploader.retries") ?? 3 this.delayBeforeRetry = params.delayBeforeRetry || 5 @@ -24,6 +25,7 @@ class ChunkedUpload { this.headers["uploader-original-name"] = encodeURIComponent(this.file.name) this.headers["uploader-file-id"] = this.uniqid(this.file) this.headers["uploader-chunks-total"] = this.totalChunks + this.headers["provider-type"] = this.service this._reader = new FileReader() this.eventBus = new EventBus() @@ -188,6 +190,7 @@ export default class RemoteStorage extends Core { onProgress = () => { }, onFinish = () => { }, onError = () => { }, + service = "default", } = {}, ) { const apiEndpoint = app.cores.api.instance().instances.files.getUri() @@ -195,12 +198,13 @@ export default class RemoteStorage extends Core { // TODO: get value from settings const chunkSize = 2 * 1000 * 1000 // 10MB - return new Promise((resolve, reject) => { - app.cores.tasksQueue.appendToQueue(`upload_${file.name}`, async () => { + return new Promise((_resolve, _reject) => { + const fn = async () => new Promise((resolve, reject) => { const uploader = new ChunkedUpload({ endpoint: `${apiEndpoint}/upload/chunk`, chunkSize: chunkSize, file: file, + service: service, }) uploader.on("error", ({ message }) => { @@ -211,6 +215,7 @@ export default class RemoteStorage extends Core { } reject(message) + _reject(message) }) uploader.on("progress", ({ percentProgress }) => { @@ -229,8 +234,11 @@ export default class RemoteStorage extends Core { } resolve(data) + _resolve(data) }) }) + + app.cores.tasksQueue.appendToQueue(`upload_${file.name}`, fn) }) } } \ No newline at end of file