41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
# 5.3.8 Recordings and Object Storage
|
|
|
|
## Recording Pipeline
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
autonumber
|
|
participant Cam as Camera Browser
|
|
participant Ctrl as Web Controller
|
|
participant Videos as /videos/upload-url
|
|
participant MinIO as MinIO Object Storage
|
|
participant Rec as /recordings/:id/finalize
|
|
participant DB as recordings table
|
|
participant Viewer as Client Browser
|
|
|
|
Cam->>Ctrl: stop local MediaRecorder
|
|
Ctrl->>Ctrl: compress recording blob
|
|
Ctrl->>Videos: request presigned upload URL
|
|
Videos-->>Ctrl: objectKey + uploadUrl
|
|
Ctrl->>MinIO: PUT recording blob
|
|
Ctrl->>Rec: finalize recording metadata
|
|
Rec->>DB: mark recording ready
|
|
Viewer->>Rec: GET /recordings/:id/download-url
|
|
Rec-->>Viewer: presigned download URL
|
|
```
|
|
|
|
## Storage Architecture
|
|
|
|
```mermaid
|
|
flowchart LR
|
|
Backend[Backend Service]
|
|
PG[(Postgres)]
|
|
MinIO[(MinIO / S3)]
|
|
Web[Web Client]
|
|
|
|
Web -->|stream, event, recording metadata| Backend
|
|
Backend -->|users, devices, links, sessions, events, recordings| PG
|
|
Backend -->|presigned upload/download + object checks| MinIO
|
|
Web -->|PUT / GET via presigned URLs| MinIO
|
|
```
|