canvas_backend_dev/src/helper/upload/removeBucket.ts
2025-03-01 14:13:26 +06:00

30 lines
1.1 KiB
TypeScript

import { minioClient } from "../../config/minioClient";
export const removeBucket = async (bucketName: string) => {
try {
// Check if the bucket exists before proceeding
const bucketExists = await minioClient.bucketExists(bucketName);
if (!bucketExists) {
return { status: 404, message: `Bucket ${bucketName} does not exist` };
}
// List objects in the bucket, which returns a stream
const objects = minioClient.listObjects(bucketName);
// Iterate over the stream of objects using 'for await...of'
for await (const obj of objects) {
await minioClient.removeObject(bucketName, obj.name);
console.log(`Removed object: ${obj.name}`);
}
// Now remove the bucket after clearing all objects
await minioClient.removeBucket(bucketName);
return { status: 200, message: `Bucket ${bucketName} and its data removed successfully` };
} catch (error: any) {
console.log(`Error removing bucket ${bucketName}: ${error.message}`);
return { status: 500, message: `Error removing bucket ${bucketName}: ${error.message}` };
}
};