Parallel Chunk Uploads and Performance Improvements
🎨 Improvements
- web: Upload chunks are now sent in parallel (up to 3 concurrent, 10 MB each) instead of sequentially (50 MB each), dramatically improving upload speed in Chrome, Brave, and Edge through reverse proxies like Traefik
- server: Chunk upload endpoint accepts an
indexquery parameter and reassembles chunks in-order on the server, ensuring data integrity with parallel client uploads - server: In-order chunks are now streamed directly to storage without buffering, eliminating unnecessary memory copies on the hot path
- server: Optimized S3 multipart upload buffering to avoid full-buffer reallocation on every chunk append
- server: S3 part uploads now run as a concurrent pool with smooth backpressure - waits for one upload slot to free up instead of draining everything, giving consistent throughput instead of burst-stop cycles
📚 Documentation
- docs: Updated architecture diagram with chunked upload flow (init, parallel chunks with index, finalize)
- docs: Added chunked upload API documentation (init, chunk, finalize endpoints) to developer guide
- docs: Added chunked upload endpoints to API overview table
🐳 Docker
- Image:
skyfay/skysend:v2.2.1 - Also tagged as:
latest,v2 - Platforms: linux/amd64, linux/arm64