/** * Grenzen für Uploads, aus docs/07-dateien-und-sicherheit.md. * * Ohne Abhängigkeiten, damit die Oberfläche dieselben Zahlen anzeigen kann, * die der Server durchsetzt - geprüft wird ausschliesslich serverseitig. */ /** 25 MB pro Datei. */ export const MAX_FILE_BYTES = 25 * 1024 * 1024 /** 500 MB Kontingent je Nutzer, über alle Anhänge. */ export const MAX_USER_BYTES = 500 * 1024 * 1024 /** 20 Uploads pro Minute und Nutzer. */ export const MAX_UPLOADS_PER_MINUTE = 20 export const RATE_WINDOW_MS = 60_000 /** Längste Kante eines Vorschaubildes. */ export const THUMB_MAX_EDGE = 480 export function formatBytes(bytes: number): string { if (bytes < 1024) return `${bytes} B` if (bytes < 1024 * 1024) return `${Math.round(bytes / 1024)} kB` const mb = bytes / (1024 * 1024) return `${mb < 10 ? mb.toFixed(1) : Math.round(mb)} MB` }