Datei-Uploads
Wie Dateifelder validiert werden
Ein Dateifeld vertraut nie dem, was die Startanfrage über eine Datei sagt. Die Start-Validierung prüft die Datei selbst, auf der Festplatte des Servers.
Wie ein Upload zu einem Job gelangt
Eine Datei wird hochgeladen, bevor das Formular gestartet wird, in zwei Schritten:
- Der Browser lädt die Datei mit
POST /api/v2/job/uploadhoch. Der Server speichert sie inUPLOAD_PATH. - Die Startanfrage beschreibt diesen Upload in ihrem Teil
files.
Die Start-Validierung prüft dann die Beschreibung gegen die Festplatte:
- Die Datei muss innerhalb von
UPLOAD_PATHexistieren. - Ihr Pfad und ihre Größe werden von der Festplatte gelesen, nie aus der Anfrage.
Was akzeptiert wird
Ein Dateifeld erhält nur aus einem verifizierten Upload einen Wert. Alles andere wird verworfen:
- Ein Pfad, den der Aufrufer in
rawFormDataoderextravarsschreibt, wird ignoriert. - Ein Pflicht-Dateifeld ohne echten Upload wird als
missinggemeldet.
Dateiregeln
Die Regeln eines Dateifelds werden gegen den echten Upload geprüft, mit Größen in Bytes:
- name: firmware
type: file
required: true
maxSize: 104857600 # 100 MB
regex:
expression: '\.bin$'
description: Upload a .bin firmware image
minSize und maxSize vergleichen die echte Größe der Datei, und regex ihren Dateinamen. Unabhängig von jedem Formular begrenzt UPLOAD_MAX_GB die Größe eines einzelnen Uploads (standardmäßig 10 GB).