port-nimara-client-portal/server/api/files/test-list-bucket.ts

56 lines
1.3 KiB
TypeScript
Raw Permalink Normal View History

2025-06-10 15:42:00 +02:00
export default defineEventHandler(async (event) => {
try {
const { bucket, prefix } = getQuery(event);
if (!bucket) {
return {
success: false,
error: 'Missing bucket parameter'
};
}
console.log('[test-list-bucket] Listing files:', {
bucket: bucket as string,
prefix: prefix as string || ''
});
// Import MinIO client
const { getMinioClient } = await import('~/server/utils/minio');
const client = getMinioClient();
const files: any[] = [];
await new Promise((resolve, reject) => {
const stream = client.listObjectsV2(bucket as string, prefix as string || '', true);
stream.on('data', (obj) => {
if (obj && obj.name) {
files.push({
name: obj.name,
size: obj.size,
lastModified: obj.lastModified
});
}
});
stream.on('error', reject);
stream.on('end', resolve);
});
return {
success: true,
bucket: bucket as string,
prefix: prefix as string || '',
count: files.length,
files: files
};
} catch (error: any) {
console.error('[test-list-bucket] Error:', error);
return {
success: false,
error: 'Failed to list bucket',
details: error.message
};
}
});