30 lines
1.1 KiB
TypeScript
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}` };
|
|
}
|
|
};
|
|
|
|
|