Bestandsuploads
Hoe bestandsvelden worden gevalideerd
Een bestandsveld vertrouwt nooit wat het startverzoek over een bestand zegt. Launch-validatie controleert het bestand zelf, op de schijf van de server.
Hoe een upload bij een job komt
Een bestand wordt geüpload voordat het formulier wordt gestart, in twee stappen:
- De browser uploadt het bestand met
POST /api/v2/job/upload. De server slaat het op inUPLOAD_PATH. - Het startverzoek beschrijft die upload in zijn deel
files.
Launch-validatie controleert daarna de beschrijving tegen de schijf:
- Het bestand moet binnen
UPLOAD_PATHbestaan. - Het pad en de grootte worden van de schijf gelezen, nooit uit het verzoek.
Wat wordt geaccepteerd
Een bestandsveld krijgt alleen een waarde uit een geverifieerde upload. Al het andere wordt genegeerd:
- Een pad dat de aanroeper in
rawFormDataofextravarsschrijft, wordt genegeerd. - Een verplicht bestandsveld zonder echte upload wordt gemeld als
missing.
Bestandsregels
De regels van een bestandsveld worden gecontroleerd tegen de echte upload, met groottes in bytes:
- name: firmware
type: file
required: true
maxSize: 104857600 # 100 MB
regex:
expression: '\.bin$'
description: Upload a .bin firmware image
minSize en maxSize vergelijken de echte grootte van het bestand, en regex de bestandsnaam. Los van elk formulier begrenst UPLOAD_MAX_GB de grootte van één upload (standaard 10 GB).