From 091ca521ef2ccf7939970b40f102c644db871d96 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Fri, 15 Jul 2022 00:45:09 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B5=20upload-=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/controllers/WebSocketController.js | 9 ++++++++- server/core/Reader/ReaderWorker.js | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/server/controllers/WebSocketController.js b/server/controllers/WebSocketController.js index 23de1b7b..add0a3a8 100644 --- a/server/controllers/WebSocketController.js +++ b/server/controllers/WebSocketController.js @@ -76,6 +76,8 @@ class WebSocketController { await this.readerStorageDo(req, ws); break; case 'upload-file-buf': await this.uploadFileBuf(req, ws); break; + case 'upload-file-touch': + await this.uploadFileTouch(req, ws); break; default: throw new Error(`Action not found: ${req.action}`); @@ -182,7 +184,12 @@ class WebSocketController { this.send({url: await this.readerWorker.saveFileBuf(req.buf)}, req, ws); } - + async uploadFileTouch(req, ws) { + if (!req.url) + throw new Error(`key 'url' is empty`); + + this.send({url: await this.readerWorker.uploadFileTouch(req.url)}, req, ws); + } } module.exports = WebSocketController; diff --git a/server/core/Reader/ReaderWorker.js b/server/core/Reader/ReaderWorker.js index 3347d8cd..70a6530d 100644 --- a/server/core/Reader/ReaderWorker.js +++ b/server/core/Reader/ReaderWorker.js @@ -232,6 +232,14 @@ class ReaderWorker { return `disk://${hash}`; } + async uploadFileTouch(url) { + const outFilename = `${this.config.uploadDir}/${url.replace('disk://', '')}`; + + await utils.touchFile(outFilename); + + return url; + } + async restoreRemoteFile(filename) { const basename = path.basename(filename); const targetName = `${this.config.tempPublicDir}/${basename}`;