diff --git a/src/modules/uploader/providers/s3.service.ts b/src/modules/uploader/providers/s3.service.ts index e507ca8..1b4d7df 100644 --- a/src/modules/uploader/providers/s3.service.ts +++ b/src/modules/uploader/providers/s3.service.ts @@ -37,13 +37,17 @@ export class S3Service { */ async uploadFile(buffer: Buffer, key: string, contentType: string, metadata?: Record): Promise { try { + const encodedMetadata = metadata ? Object.fromEntries( + Object.entries(metadata).map(([key, value]) => [key, encodeURIComponent(value)]) + ) : undefined; + const command = new PutObjectCommand({ Bucket: this.bucketName, Key: key, Body: buffer, ACL: "public-read", ContentType: contentType, - Metadata: metadata, + Metadata: encodedMetadata, }); await this.s3Client.send(command);