From 27bfd6abbe288332bd61adf74ee634c98013ba2e Mon Sep 17 00:00:00 2001 From: ericwyuan Date: Fri, 21 Aug 2026 16:09:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(api):=20=E4=BA=8B=E4=BB=B6=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=E6=8E=A5=E5=8F=A3=E5=85=9C=E5=BA=95=20-=20ev=5F{id}.j?= =?UTF-8?q?pg=20=E7=BC=BA=E5=A4=B1=E6=97=B6=E8=BF=94=E5=9B=9E=E6=89=80?= =?UTF-8?q?=E5=B1=9E=E8=A7=86=E9=A2=91=E9=A6=96=E5=B8=A7=E7=BC=A9=E7=95=A5?= =?UTF-8?q?=E5=9B=BE(thumbs/{video=5Fid}.jpg)=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E6=97=A7=E4=BA=8B=E4=BB=B6/=E6=9C=AA=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=88=AA=E5=9B=BE=E5=AF=BC=E8=87=B4=E5=89=8D=E7=AB=AF=E5=A4=B4?= =?UTF-8?q?=E5=83=8F=E7=A9=BA=E7=99=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fam-edge/src/fam_edge/api_gateway/api_gateway.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fam-edge/src/fam_edge/api_gateway/api_gateway.py b/fam-edge/src/fam_edge/api_gateway/api_gateway.py index fdd680d..c349c03 100644 --- a/fam-edge/src/fam_edge/api_gateway/api_gateway.py +++ b/fam-edge/src/fam_edge/api_gateway/api_gateway.py @@ -141,11 +141,23 @@ def event_thumb(event_id): 由 video_processor 处理成功后按事件时间戳定位视频帧生成: /opt/fam-edge/thumbs/ev_{event_id}.jpg + 若该事件截图缺失(如旧事件/未生成),兜底返回所属视频的首帧缩略图 + thumbs/{video_id}.jpg,避免前端图片空白。 """ if not _check_token(): return jsonify({"error": "unauthorized"}), 401 path = f"/opt/fam-edge/thumbs/ev_{event_id}.jpg" if not os.path.isfile(path): + # 兜底:查事件所属视频,返回视频首帧缩略图 + try: + row = state.get_db()._conn.execute( + "SELECT video_id FROM events WHERE id=?", (event_id,)).fetchone() + if row and row['video_id']: + vpath = f"/opt/fam-edge/thumbs/{row['video_id']}.jpg" + if os.path.isfile(vpath): + return send_file(vpath, mimetype='image/jpeg') + except Exception: + pass return jsonify({"error": "thumb_not_found"}), 404 return send_file(path, mimetype='image/jpeg')