Starlette's multipart parser (pure Python) is too slow for >1 GB uploads — boundary scanning over gigabytes blocks the event loop indefinitely. New /session/upload-raw endpoint: - Receives raw binary body via request.stream() — no parsing overhead - Metadata (filename, vmid, vm_name) passed in HTTP headers - Async chunked write directly to staging — true zero-copy streaming - Same progress logging as before Frontend now sends File object directly via xhr.send(file) instead of FormData — eliminates multipart encoding on the client too. |
||
|---|---|---|
| .. | ||
| static | ||
| templates | ||
| api_client.py | ||
| app.py | ||
| install.sh | ||
| requirements.txt | ||
| vm-bench.service | ||