diff --git a/packages/backend/server/src/modules/storage/providers/r2.ts b/packages/backend/server/src/modules/storage/providers/r2.ts index 791e152002..9d9f832bec 100644 --- a/packages/backend/server/src/modules/storage/providers/r2.ts +++ b/packages/backend/server/src/modules/storage/providers/r2.ts @@ -1,3 +1,5 @@ +import { Logger } from '@nestjs/common'; + import { R2StorageConfig } from '../../../config/storage'; import { S3StorageProvider } from './s3'; @@ -12,5 +14,6 @@ export class R2StorageProvider extends S3StorageProvider { }, bucket ); + this.logger = new Logger(`${R2StorageProvider.name}:${bucket}`); } } diff --git a/packages/backend/server/src/modules/storage/providers/s3.ts b/packages/backend/server/src/modules/storage/providers/s3.ts index 30c1f9ca8e..f1f811998d 100644 --- a/packages/backend/server/src/modules/storage/providers/s3.ts +++ b/packages/backend/server/src/modules/storage/providers/s3.ts @@ -5,6 +5,7 @@ import { DeleteObjectCommand, GetObjectCommand, ListObjectsV2Command, + NoSuchKey, PutObjectCommand, S3Client, } from '@aws-sdk/client-s3'; @@ -21,7 +22,7 @@ import { import { autoMetadata, toBuffer } from './utils'; export class S3StorageProvider implements StorageProvider { - private readonly logger: Logger; + protected logger: Logger; protected client: S3Client; readonly type = 's3'; @@ -96,9 +97,15 @@ export class S3StorageProvider implements StorageProvider { }, }; } catch (e) { - throw new Error(`Failed to read object \`${key}\``, { - cause: e, - }); + // 404 + if (e instanceof NoSuchKey) { + this.logger.verbose(`Object \`${key}\` not found`); + return {}; + } else { + throw new Error(`Failed to read object \`${key}\``, { + cause: e, + }); + } } }