From 0481b25a62457f9ae44f1ef60e71dbab1944bde1 Mon Sep 17 00:00:00 2001 From: Marie Date: Fri, 28 Mar 2025 14:36:44 +0100 Subject: [PATCH] upd: create usingBunnyCDN --- packages/backend/src/core/BunnyService.ts | 7 ++++++- packages/backend/src/core/DriveService.ts | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/backend/src/core/BunnyService.ts b/packages/backend/src/core/BunnyService.ts index 1563bc2711..3931ccfdd1 100644 --- a/packages/backend/src/core/BunnyService.ts +++ b/packages/backend/src/core/BunnyService.ts @@ -29,6 +29,11 @@ export class BunnyService { }; } + @bindThis + public usingBunnyCDN(meta: MiMeta) { + return meta.objectStorageEndpoint && meta.objectStorageEndpoint.includes('bunnycdn.com') ? true : false; + } + @bindThis public async upload(meta: MiMeta, path: string, input: fs.ReadStream | Buffer) { const client = this.getBunnyInfo(meta); @@ -41,7 +46,7 @@ export class BunnyService { const data = Buffer.isBuffer(input) ? Readable.from(input) : input; const agent = this.httpRequestService.getAgentByUrl(new URL(`${client.fullUrl}/${path}`), !meta.objectStorageUseProxy, true); - + // Seperation of path and host/domain is required here const options = { method: 'PUT', diff --git a/packages/backend/src/core/DriveService.ts b/packages/backend/src/core/DriveService.ts index 53bc4e553f..31c065d4b4 100644 --- a/packages/backend/src/core/DriveService.ts +++ b/packages/backend/src/core/DriveService.ts @@ -407,7 +407,7 @@ export class DriveService { ); if (this.meta.objectStorageSetPublicRead) params.ACL = 'public-read'; - if (this.meta.objectStorageEndpoint && this.meta.objectStorageEndpoint.includes('bunnycdn.com')) { + if (this.bunnyService.usingBunnyCDN(this.meta)) { await this.bunnyService.upload(this.meta, key, stream); } else { await this.s3Service.upload(this.meta, params) @@ -820,7 +820,7 @@ export class DriveService { Bucket: this.meta.objectStorageBucket, Key: key, } as DeleteObjectCommandInput; - if (this.meta.objectStorageEndpoint && this.meta.objectStorageEndpoint.includes('bunnycdn.com')) { + if (this.bunnyService.usingBunnyCDN(this.meta)) { await this.bunnyService.delete(this.meta, key); } else { await this.s3Service.delete(this.meta, param);