NeahNew/lib/s3.ts
2025-05-24 19:50:15 +02:00

40 lines
1.0 KiB
TypeScript

import { S3Client } from '@aws-sdk/client-s3';
// Initialize S3 client for Minio
export const s3Client = new S3Client({
region: 'us-east-1',
endpoint: 'https://dome-api.slm-lab.net',
credentials: {
accessKeyId: '4aBT4CMb7JIMMyUtp4Pl',
secretAccessKey: 'HGn39XhCIlqOjmDVzRK9MED2Fci2rYvDDgbLFElg'
},
forcePathStyle: true // Required for MinIO
});
export async function uploadMissionFile({
missionId,
file,
type, // 'logo' or 'attachment'
}: {
missionId: string;
file: File;
type: 'logo' | 'attachment';
}): Promise<{ success: boolean; data?: any; error?: string }> {
const formData = new FormData();
formData.append('missionId', missionId);
formData.append('type', type);
formData.append('file', file);
const res = await fetch('/api/missions/upload', {
method: 'POST',
body: formData,
});
if (!res.ok) {
const err = await res.json().catch(() => ({}));
return { success: false, error: err.error || 'Upload failed' };
}
const data = await res.json();
return { success: true, data };
}