diag.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'dotenv/config';
  2. import minioClient from './src/lib/minio';
  3. async function diagnose() {
  4. console.log('🔍 Starting Enhanced MinIO Diagnosis (with dotenv)...');
  5. const logError = (context: string, err: any) => {
  6. console.error(`\n❌ ${context}`);
  7. console.error('--- Error Details ---');
  8. console.error(`Message: ${err.message || 'No message'}`);
  9. if (err.code) console.error(`Code: ${err.code}`);
  10. if (err.$response && err.$response.statusCode) console.error(`Status Code: ${err.$response.statusCode}`);
  11. // MinIO S3 errors often have these properties
  12. if (err.amzId2) console.error(`AmzId2: ${err.amzId2}`);
  13. console.error('----------------------');
  14. };
  15. try {
  16. // 1. Test Connection & List Buckets
  17. console.log('1. Attempting to list buckets...');
  18. const buckets = await minioClient.listBuckets();
  19. console.log('✅ Success! Found buckets:', buckets.map(b => b.name));
  20. } catch (err: any) {
  21. logError('Failed to list buckets', err);
  22. }
  23. try {
  24. // 2. Test specific bucket 'ecom-images'
  25. const targetBucket = 'ecom-images';
  26. console.log(`\n2. Checking bucket "${targetBucket}"...`);
  27. const exists = await minioClient.bucketExists(targetBucket);
  28. console.log(`✅ Bucket "${targetBucket}" exists: ${exists}`);
  29. if (exists) {
  30. console.log(`3. Attempting to upload a test file to "${targetBucket}"...`);
  31. const testFile = Buffer.from('test content');
  32. await minioClient.putObject(targetBucket, 'diag-test.txt', testFile);
  33. console.log('✅ Success! Uploaded diag-test.txt');
  34. console.log('4. Attempting to delete the test file...');
  35. await minioClient.removeObject(targetBucket, 'diag-test.txt');
  36. console.log('✅ Success! Deleted diag-test.txt');
  37. } else {
  38. console.error(`❌ Error: Bucket "${targetBucket}" does not exist.`);
  39. }
  40. } catch (err: any) {
  41. logError('Failed during bucket/file operations', err);
  42. }
  43. }
  44. diagnose();