| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import 'dotenv/config';
- import minioClient from './src/lib/minio';
- async function diagnose() {
- console.log('🔍 Starting Enhanced MinIO Diagnosis (with dotenv)...');
- const logError = (context: string, err: any) => {
- console.error(`\n❌ ${context}`);
- console.error('--- Error Details ---');
- console.error(`Message: ${err.message || 'No message'}`);
- if (err.code) console.error(`Code: ${err.code}`);
- if (err.$response && err.$response.statusCode) console.error(`Status Code: ${err.$response.statusCode}`);
- // MinIO S3 errors often have these properties
- if (err.amzId2) console.error(`AmzId2: ${err.amzId2}`);
- console.error('----------------------');
- };
- try {
- // 1. Test Connection & List Buckets
- console.log('1. Attempting to list buckets...');
- const buckets = await minioClient.listBuckets();
- console.log('✅ Success! Found buckets:', buckets.map(b => b.name));
- } catch (err: any) {
- logError('Failed to list buckets', err);
- }
- try {
- // 2. Test specific bucket 'ecom-images'
- const targetBucket = 'ecom-images';
- console.log(`\n2. Checking bucket "${targetBucket}"...`);
- const exists = await minioClient.bucketExists(targetBucket);
- console.log(`✅ Bucket "${targetBucket}" exists: ${exists}`);
- if (exists) {
- console.log(`3. Attempting to upload a test file to "${targetBucket}"...`);
- const testFile = Buffer.from('test content');
- await minioClient.putObject(targetBucket, 'diag-test.txt', testFile);
- console.log('✅ Success! Uploaded diag-test.txt');
- console.log('4. Attempting to delete the test file...');
- await minioClient.removeObject(targetBucket, 'diag-test.txt');
- console.log('✅ Success! Deleted diag-test.txt');
- } else {
- console.error(`❌ Error: Bucket "${targetBucket}" does not exist.`);
- }
- } catch (err: any) {
- logError('Failed during bucket/file operations', err);
- }
- }
- diagnose();
|