diff --git a/k8s/06-ingress.yaml b/k8s/06-ingress.yaml index c50f56e..2896121 100644 --- a/k8s/06-ingress.yaml +++ b/k8s/06-ingress.yaml @@ -20,13 +20,13 @@ metadata: nginx.ingress.kubernetes.io/ssl-redirect: "true" # ingress-nginx laesst ohne diese Annotation standardmaessig nur 1 MB pro # Request durch — weit unter dem Bild- (8 MB, lib/uploads.ts - # MAX_UPLOAD_BYTES) und erst recht dem Video-Limit (40 MB, lib/uploads.ts + # MAX_UPLOAD_BYTES) und erst recht dem Video-Limit (100 MB, lib/uploads.ts # MAX_UPLOAD_VIDEO_BYTES) der Admin-Uploads. Ohne diese Zeile bricht # nginx jeden Upload jenseits von 1 MB vor der App ab (Verbindungsabbruch - # ohne verwertbare Fehlermeldung im Browser) — 45m deckt das groessere der - # beiden Limits (40 MB) plus etwas Spielraum fuer den multipart/form-data- - # Overhead ab. - nginx.ingress.kubernetes.io/proxy-body-size: "45m" + # ohne verwertbare Fehlermeldung im Browser) — 110m deckt das groessere + # der beiden Limits (100 MB) plus etwas Spielraum fuer den + # multipart/form-data-Overhead ab. + nginx.ingress.kubernetes.io/proxy-body-size: "110m" spec: ingressClassName: nginx tls: diff --git a/src/lib/uploads.ts b/src/lib/uploads.ts index 4ffbef2..6b752a1 100644 --- a/src/lib/uploads.ts +++ b/src/lib/uploads.ts @@ -33,14 +33,16 @@ export const UPLOAD_DIR = path.resolve(/*turbopackIgnore: true*/ process.env.UPL export const MAX_UPLOAD_BYTES = 8 * 1024 * 1024; /** - * 40 MB: ein kurzes (wenige Sekunden), fuer Web komprimiertes Hero-Video - * passt bequem darunter. Grosszuegiger als MAX_UPLOAD_BYTES (Bilder), weil - * Video-Dateien inhaerent groesser sind — Videos werden aber (anders als - * Bilder) NICHT neu enkodiert (dafuer gibt es hier keine sharp-Entsprechung - * ohne eine ffmpeg-Abhaengigkeit), die Groessengrenze ist daher die einzige - * Bremse gegen uebermaessig grosse Uploads. + * 100 MB: deckt auch ein laengeres oder nicht web-optimiertes Hero-Video + * (z.B. direkt von einer Kamera/einem Handy exportiert, oft 40-80 MB) ab. + * Grosszuegiger als MAX_UPLOAD_BYTES (Bilder), weil Video-Dateien inhaerent + * groesser sind — Videos werden aber (anders als Bilder) NICHT neu enkodiert + * (dafuer gibt es hier keine sharp-Entsprechung ohne eine ffmpeg- + * Abhaengigkeit), die Groessengrenze ist daher die einzige Bremse gegen + * uebermaessig grosse Uploads. Muss zum "proxy-body-size" in + * k8s/06-ingress.yaml passen (dort grosszuegiger bemessen). */ -export const MAX_UPLOAD_VIDEO_BYTES = 40 * 1024 * 1024; +export const MAX_UPLOAD_VIDEO_BYTES = 100 * 1024 * 1024; export type AllowedImageExtension = "jpg" | "png" | "webp" | "avif"; export type AllowedVideoExtension = "mp4" | "webm";