From 3c7b8da9a88df75bbb4f6e63830d63148e543bc6 Mon Sep 17 00:00:00 2001 From: Hayden Young Date: Thu, 14 Oct 2021 23:15:03 +0100 Subject: fix: don't set location by default --- cdn/src/util/S3Storage.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'cdn/src/util/S3Storage.ts') diff --git a/cdn/src/util/S3Storage.ts b/cdn/src/util/S3Storage.ts index 8c7f7813..df5bc19c 100644 --- a/cdn/src/util/S3Storage.ts +++ b/cdn/src/util/S3Storage.ts @@ -13,14 +13,21 @@ const readableToBuffer = (readable: Readable): Promise => export class S3Storage implements Storage { public constructor( private client: S3, - private basePath: string, - private bucket: string + private bucket: string, + private basePath?: string, ) {} + /** + * Always return a string, to ensure consistency. + */ + get bucketBasePath() { + return this.basePath ?? ''; + } + async set(path: string, data: Buffer): Promise { await this.client.putObject({ Bucket: this.bucket, - Key: `${this.basePath}${path}`, + Key: `${this.bucketBasePath}${path}`, Body: data }); } @@ -29,7 +36,7 @@ export class S3Storage implements Storage { try { const s3Object = await this.client.getObject({ Bucket: this.bucket, - Key: `${this.basePath}${path}` + Key: `${this.bucketBasePath ?? ''}${path}` }); if (!s3Object.Body) return null; @@ -47,7 +54,7 @@ export class S3Storage implements Storage { async delete(path: string): Promise { await this.client.deleteObject({ Bucket: this.bucket, - Key: `${this.basePath}${path}` + Key: `${this.bucketBasePath}${path}` }); } } -- cgit 1.5.1