Этот сервер — один из узлов приёма Bluebird. Он забирает загрузки и потоки от устройств поблизости, складывает их в очередь и отдаёт в основное хранилище, когда канал позволяет. Публичного интерфейса у узла нет — только API.
Три задачи, ничего сверх. Всё остальное — логика приложения — живёт в основном контуре и сюда не выносится.
Устройство отдаёт файл или сегмент ближайшему узлу и сразу освобождает канал — дальше узел разбирается сам.
Статус каждой загрузки — приняли, поставили в очередь, отдали, ошибка — приходит по веб-сокету без опроса.
Для парка устройств — потоковый gRPC-канал: одно соединение, много объектов, обратное давление по месту.
Аутентификация — bearer-токен устройства. Токен выдаётся в основном контуре и действует на всех узлах приёма.
Загрузка сегмента с камеры на ближайший узел.
# отправить сегмент на узел приёма curl -X POST https://relay.bbird.ru/api/v2/uploads \ -H "Authorization: Bearer $DEVICE_TOKEN" \ -H "X-Device-Id: cam-ru-c1-014" \ -F "file=@segment.mp4" # → 202 Accepted { "id": "seg_7Kd91mQ", "node": "ru-c1", "bytes": 4718592, "state": "queued" }