From 0500118b685153f953d15569a1c578ef3c0ae8ed Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Thu, 18 Apr 2024 16:58:24 +0000 Subject: [PATCH] support optional `B2` service --- packages/server/services/files/file.service.js | 17 ++++++++++++----- .../files/services/remoteUpload/index.js | 4 ++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/server/services/files/file.service.js b/packages/server/services/files/file.service.js index 593305f1..d4255d8a 100755 --- a/packages/server/services/files/file.service.js +++ b/packages/server/services/files/file.service.js @@ -25,16 +25,23 @@ class API extends Server { cache: new CacheService(), redis: RedisClient(), storage: StorageClient(), - b2Storage: new B2({ - applicationKeyId: process.env.B2_KEY_ID, - applicationKey: process.env.B2_APP_KEY, - }), + b2Storage: null, limits: {}, } async onInitialize() { global.storage = this.contexts.storage - global.b2Storage = this.contexts.b2Storage + + if (process.env.B2_KEY_ID && process.env.B2_APP_KEY) { + this.contexts.b2Storage = new B2({ + applicationKeyId: process.env.B2_KEY_ID, + applicationKey: process.env.B2_APP_KEY, + }) + + global.b2Storage = this.contexts.b2Storage + } else { + console.warn("B2 storage not configured on environment, skipping...") + } await this.contexts.db.initialize() await this.contexts.redis.initialize() diff --git a/packages/server/services/files/services/remoteUpload/index.js b/packages/server/services/files/services/remoteUpload/index.js index c435ea61..23aa97c6 100644 --- a/packages/server/services/files/services/remoteUpload/index.js +++ b/packages/server/services/files/services/remoteUpload/index.js @@ -106,6 +106,10 @@ export default async ({ switch (service) { case "b2": + if (!global.b2Storage) { + throw new OperationError(500, "B2 storage not configured on environment, unsupported service. Please use `standard` service.") + } + result = await b2Upload({ remotePath, source,