feat: add method to generate presigned S3 upload URLs

Implemented a `getUploadUrl` method in S3 service to generate presigned URLs for uploading files. Includes support for custom bucket names and expiry times, with error handling and logging.
This commit is contained in:
Mathis HERRIOT
2026-01-08 15:26:50 +01:00
parent dde1bf522f
commit 9963046e41

View File

@@ -89,6 +89,26 @@ export class S3Service implements OnModuleInit {
} }
} }
async getUploadUrl(
fileName: string,
expiry = 3600,
bucketName: string = this.bucketName,
) {
try {
return await this.minioClient.presignedUrl(
"PUT",
bucketName,
fileName,
expiry,
);
} catch (error) {
this.logger.error(
`Error getting upload URL for ${bucketName}: ${error.message}`,
);
throw error;
}
}
async deleteFile(fileName: string, bucketName: string = this.bucketName) { async deleteFile(fileName: string, bucketName: string = this.bucketName) {
try { try {
await this.minioClient.removeObject(bucketName, fileName); await this.minioClient.removeObject(bucketName, fileName);