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
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die README; an keiner Stelle Bedeutung, nur Zeichensetzung.
27 lines
862 B
TypeScript
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`
|
|
}
|