From ba8f81d6e9578d0161f3aec0ace1a0effd5fba6a Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 18 Oct 2024 11:01:06 +0800 Subject: [PATCH] core: support move() and exists() operation --- packages/hydrooj/src/model/storage.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/hydrooj/src/model/storage.ts b/packages/hydrooj/src/model/storage.ts index dfa8afd1a..4779584ce 100644 --- a/packages/hydrooj/src/model/storage.ts +++ b/packages/hydrooj/src/model/storage.ts @@ -123,6 +123,19 @@ export class StorageModel { return await storage.signDownloadLink(res.value?.link || res.value?._id || target, filename, noExpire, useAlternativeEndpointFor); } + static async move(src: string, dst: string) { + const res = await StorageModel.coll.findOneAndUpdate( + { path: src, autoDelete: null }, + { $set: { path: dst } }, + ); + return !!res.value; + } + + static async exists(path: string) { + const value = await StorageModel.coll.findOne({ path, autoDelete: null }); + return !!value; + } + static async copy(src: string, dst: string) { const { value } = await StorageModel.coll.findOneAndUpdate( { path: src, autoDelete: null },