docs: direct-to-R2 ingest (video+files), media viewer suite, multi-file queues, sidecar + LLM ops notes
This commit is contained in:
parent
fe483a0822
commit
7776569cf1
3 changed files with 26 additions and 2 deletions
|
|
@ -186,7 +186,23 @@ Still planned: media-engine graph rewiring beyond the current FFmpeg-normalize p
|
|||
- 10 MiB chunks (`CHUNK_SIZE_BYTES`) sidestep Cloudflare's ~100 MB proxy body cap. The server reassembles, seals, stores to R2, then runs the normal probe pipeline.
|
||||
- Max chunked upload: **100 GiB** (`MAX_CHUNKED_UPLOAD_BYTES`).
|
||||
|
||||
### 10.6 Upload caps
|
||||
### 10.7 Direct-to-R2 video ingest (worker-probed)
|
||||
- `GET /video/direct/config` → `POST /video/direct/init` (presigned PUT) → `POST /video/direct/complete` (HEAD-gated register + queued probe job). The browser seals SPENC2 and PUTs straight to object storage — the api box never touches video bytes.
|
||||
- The produce worker claims the probe job (042 widened `produce_job_claim`), fetches the sealed object off R2, opens by magic (SPENC1 kek / SPENC2 direct key via `DIRECT_EC_PRIVATE_KEY`), ffprobes, writes metadata, completes. Compose/mix jobs read direct objects the same way.
|
||||
- Requirements: `DIRECT_EC_PRIVATE_KEY` on api + media-worker + produce-worker (compose appenv).
|
||||
|
||||
### 10.8 Files direct-to-R2 + media viewer
|
||||
- `GET /files/direct/config`, `POST /files/direct/init|complete`, `POST /files/:id/direct-download` (presigned GET + CEK ticket; the browser decrypts — the server never streams direct/ payloads).
|
||||
- Viewer suite: image lightbox (zoom/pan/rotate + filmstrip), brand video player (scrubber/buffered/volume/speed/PiP/fullscreen + keyboard), image EDITOR (crop with aspect presets, rotate 90s, flip H/V, brightness/contrast/saturation — saves as a NEW library file), video TRIM (in/out → the cut renders into the Video library via the assemble lane; the original is never modified), PDF (native iframe), text (+copy), HTML (sandboxed `allow-scripts` run + source toggle).
|
||||
- Thumbnails decrypt client-side; video stills are captured in-browser. Session cache dedupes decryption per item.
|
||||
- Browser memory caps the direct path at 512 MiB (sealing holds plaintext + frame); larger files fall back to the server path (Cloudflare-capped ~100 MB) until multipart lands.
|
||||
|
||||
### 10.9 Multi-file upload queues
|
||||
- Both dropzones accept multiple files: sequential queue, per-file status (queued / % / done / failed), one failure never aborts the queue.
|
||||
- Video per-file transport: direct (when enabled, ≤512 MiB) → chunked (>10 MiB) → whole-body (≤10 MiB). Files per-file transport: direct (when enabled, ≤512 MiB) → server multipart.
|
||||
|
||||
|
||||
## 11. Key file map
|
||||
- Whole-body video upload cap: **2 GiB** (`MAX_VIDEO_UPLOAD_BYTES`).
|
||||
- Files group upload cap: **2 GiB** (was 20 MiB).
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue