dragon-wind-desktop/README.md

59 lines
1.7 KiB
Markdown
Raw Normal View History

# 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.