import { readdir } from "node:fs/promises"; import { join } from "node:path"; const FILES_DIR = "./files"; Bun.serve({ port: 3006, async fetch(req) { const url = new URL(req.url); // Kui küsitakse juurkausta, näita failide loetelu if (url.pathname === "/") { try { const files = await readdir(FILES_DIR); let html = ` Failiserver

📁 Failid

`; return new Response(html, { headers: { "Content-Type": "text/html; charset=utf-8" } }); } catch (error) { return new Response("Viga failide lugemisel", { status: 500 }); } } // Kui küsitakse faili allalaadimist if (url.pathname.startsWith("/download/")) { const filename = decodeURIComponent(url.pathname.slice(10)); const filepath = join(FILES_DIR, filename); try { const file = Bun.file(filepath); const exists = await file.exists(); if (!exists) { return new Response("Faili ei leitud", { status: 404 }); } return new Response(file, { headers: { "Content-Disposition": `attachment; filename="${filename}"`, } }); } catch (error) { return new Response("Viga faili lugemisel", { status: 500 }); } } return new Response("Lehte ei leitud", { status: 404 }); }, }); console.log("Failiserver töötab aadressil http://localhost:3006");