Files
Harlekin e0b03ea336
Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s
Gedankenstriche durch Bindestriche ersetzt
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die
README; an keiner Stelle Bedeutung, nur Zeichensetzung.
2026-09-04 08:54:52 +02:00

27 lines
862 B
TypeScript

/**
* 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`
}