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:
@@ -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) {
|
||||
try {
|
||||
await this.minioClient.removeObject(bucketName, fileName);
|
||||
|
||||
Reference in New Issue
Block a user