联机拍摄系统最重要的指标不是“能不能导入照片”,而是按下快门后,照片多久能出现在浏览器里。我们把“实时看到、实时管理、实时修图”作为第一约束,围绕它设计整条链路。
需求拆成五个模块
系统被拆成 tether、photos、editor、export 和 ws/events 五个模块:联机负责接收相机文件;照片库负责落盘和缩略图;editor 负责 RAW 调整;export 负责输出成品;WebSocket 负责把新照片事件推到浏览器。
为什么不用轮询
轮询意味着浏览器要不停问“新照片来了吗”,延迟和请求量都不可控。WebSocket 让服务端在新照片落盘后主动推送事件,前端收到事件立即刷新缩略图和预览,这更符合拍摄现场的节奏。
实施步骤
- 先打通 tether:对接 Sony 相机协议,让照片进入服务器。
- 再做 photos:原图、缩略图和列表分层保存,避免每次打开列表都处理大文件。
- 接 editor:围绕裁剪、调色和 RAW 参数建立可回退的编辑流程。
- 接 export:把修图结果写入独立 exports 目录。
- 最后接 WebSocket:将新照片事件串到前端。
部署与数据安全
系统使用 Docker 部署,数据目录单独挂载,照片和修图结果不依赖容器临时层。当前以 8080 提供 API、静态资源和前端,后续可以继续拆分服务,但先保证现场使用链路稳定。
当前进度
Sony 联机、照片列表、缩略图、基础 RAW 编辑、导出和实时事件链路已经搭起;当前仍只对接 Sony,高级 AI 修图和移动端体验还在后续迭代。
下一步
下一步优先做异常恢复:相机断连重连、重复文件去重、传输中断续传和编辑结果回滚。现场工具最怕的不是少一个按钮,而是拍摄过程中丢片。
真实运行界面与访问地址
我们把项目实际部署在 NAS 上,并用真实 Firefox 浏览器打开拍摄页验证界面,而不是用示意图代替运行证据。

- 公网前端:http://8.130.78.95:5173/
- 公网拍摄页:http://8.130.78.95:5173/capture
- NAS 后端健康检查:
http://NAS_IP:8080/health
实际使用步骤
- 打开公网拍摄页或 NAS 局域网地址。
- 用 USB 线连接相机到 NAS,并把相机切换到 PC 连接/遥控模式。
- 等待页面自动检测相机,创建或选择拍摄会话。
- 使用“拍摄”“连拍 x3”或“连拍 x5”。
- 在图库中查看照片,在修改照片页面进行裁剪、调色和导出。
当前验证到的是网站界面、前后端服务和公网入口均可访问;真实相机尚未接入 NAS,因此截图中的实时取景和拍摄按钮处于未连接状态。相机接入后还需要再做一次端到端拍摄验收。
评论