- Electron tray app (main, preload, renderer) - Parallel chunked HTTP transfer engine - Dragon Wind server client (auth + multipart API) - Upload queue UI with progress, speed, ETA - Folder browser with search - Settings (workers, chunk size) - Server API docs for desktop multipart endpoints
58 lines
1.7 KiB
Markdown
58 lines
1.7 KiB
Markdown
# Dragon Wind Desktop
|
|
|
|
Native Electron desktop uploader for [Dragon Wind](https://forge.wilddragon.net/zgaetano/VPM-Uploader) / Grass Valley AMPP.
|
|
|
|
High-speed parallel file transfers to S3 — same approach as MASV and Aspera. No browser, no extension, no UDP firewall headaches.
|
|
|
|
## How it works
|
|
|
|
Files are split into chunks and uploaded concurrently via presigned S3 PUT URLs. The Dragon Wind server orchestrates multipart uploads; the desktop app drives the data plane directly to S3.
|
|
|
|
```
|
|
User drops file
|
|
→ Dragon Wind server: POST /api/desktop/multipart/init
|
|
← uploadId + N presigned S3 PUT URLs
|
|
→ S3: PUT each chunk in parallel (N workers)
|
|
→ Dragon Wind server: POST /api/desktop/multipart/complete
|
|
← done ✅
|
|
```
|
|
|
|
## Requirements
|
|
|
|
- Node.js 18+
|
|
- A running Dragon Wind server (v0.x or later with desktop API endpoints)
|
|
- Electron 30+
|
|
|
|
## Dev
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
## Build
|
|
|
|
```bash
|
|
npm run build:mac # DMG for macOS (x64 + arm64)
|
|
npm run build:win # NSIS installer for Windows
|
|
npm run build:linux # AppImage for Linux
|
|
```
|
|
|
|
## Server-side additions needed
|
|
|
|
Add these endpoints to the Dragon Wind `server.js`:
|
|
|
|
- `POST /api/desktop/multipart/init` — creates S3 multipart upload, returns presigned part URLs
|
|
- `POST /api/desktop/multipart/complete` — completes the multipart upload
|
|
- `POST /api/desktop/multipart/abort` — aborts on cancel/error
|
|
|
|
See `docs/server-api.md` for full spec.
|
|
|
|
## Settings
|
|
|
|
| Setting | Default | Description |
|
|
|---------|---------|-------------|
|
|
| Workers | 6 | Concurrent chunk uploads |
|
|
| Chunk size | 16 MB | Per-part size (min 5 MB, S3 limit) |
|
|
|
|
Tune workers up on high-bandwidth links (50+ Mbps). Tune chunk size up for high-latency WAN to reduce round trips.
|