Files
marmarislocal/lib/openinary.ts
T
2026-07-12 20:18:55 +03:00

37 lines
1.1 KiB
TypeScript

export async function uploadToOpeninary(file: File, folder: string = "marmarislocal"): Promise<string> {
const url = `${process.env.OPENINARY_API_URL}/upload`;
const key = process.env.OPENINARY_API_KEY;
if (!url || !key) {
throw new Error("Openinary configuration (OPENINARY_API_URL or OPENINARY_API_KEY) is missing in environment variables.");
}
const formData = new FormData();
formData.append("files", file);
formData.append("folder", folder);
const response = await fetch(url, {
method: "POST",
headers: {
"x-api-key": key,
},
body: formData,
});
if (!response.ok) {
const errText = await response.text();
throw new Error(`Openinary upload failed: ${response.statusText} - ${errText}`);
}
const data = await response.json();
// Openinary standard response is usually an array: [{ url: "...", name: "..." }]
if (Array.isArray(data) && data.length > 0) {
return data[0].url || data[0].secure_url;
} else if (data && typeof data === "object") {
return data.url || data.secure_url || (data.files && data.files[0]?.url);
}
throw new Error("Invalid response format from Openinary server.");
}