Просмотр исходного кода

fix(d2-02-p5): 网关图片路由端口 80->8888,修 operate 看不到图(原图+抠图)

- 真根因:网关 routes[5](aivfo-dfs)把 /group1/** 转发到 server.ip:80,但108 FastDFS nginx 在8888,80无服务->operate看任何图都HTTP 000拿不到
- 非重构改坏:老代码各profile都是无端口(生产nginx在80);是108测试环境nginx装8888的配置不匹配
- 修复:local profile routes[5].uri 改 http://${server.ip}:8888,重编译重启网关
- 验证:带真token经网关 /group1 下图 HTTP 200 完整636KB;原图+抠图同走此路由,一并解决看原图+看抠图位置

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
huangjie 1 день назад
Родитель
Сommit
86171966f2

+ 2 - 1
aivfo-gateway/aivfo-gateway-lanucher/src/main/resources/application-local.properties

@@ -69,7 +69,8 @@ spring.cloud.gateway.routes[6].predicates[0]=Path=/api/data/transmission/server/
 
 #fast_dfs
 spring.cloud.gateway.routes[5].id=aivfo-dfs
-spring.cloud.gateway.routes[5].uri=http://${server.ip}
+# 108 测试环境 FastDFS nginx 在 8888 端口(生产在80),图片路由须带 :8888,否则转发到80拿不到图
+spring.cloud.gateway.routes[5].uri=http://${server.ip}:8888
 spring.cloud.gateway.routes[5].predicates[0]=Path=/group1/**,/group2/**,/group3/**
 spring.cloud.gateway.routes[5].filters[0]=RemoveRequestParameter=token
 

+ 9 - 0
项目文档/进度/D2-02-第三阶段-自动对焦重构-特殊情况记录.md

@@ -207,3 +207,12 @@
   - **原图查看**:`getSourcePictures` 代码改造前后**一字未改**(用 `sourceImageUrl`、`crop_state` 过滤已注释);`FastDFSClient` 也无改动;FastDFS 协议下载(`downloadFile`)实测通(621KB)。**原图链路本身没问题**。若前端仍看不到原图 = **前端(网页端,WebView2)拼下载地址的 IP/调用问题**(独立小问题,源码不在本仓库,待定位)。operate 详情页新老都只用 `imageUrl`(抠图),非原图入口。
 - ★**部署形态变更(运维须知)**:**data-transmission 现在跑在 108**(`/home/soft/aivfo/aivfo-data-transmission/`),不再在 Windows 跑。`start-all.sh` 已移除它。重启后 data-transmission 需在 108 单独起(命令见上)。Windows 端起 data-transmission 会与 108 抢 Kafka 消费组,**勿双开**。
 - **待明天**:接气源拍 2+ 轮 → 验证视频自动合成 + 前端能看图/视频;若原图仍看不到,定位网页前端的图片地址配置。
+
+#### [Phase5·根因] ★operate 看不到任何图(原图+抠图)的真根因 = 网关图片路由端口错(80 应为 8888)  — 2026-06-26 深夜
+- **现象**:operate 仓4/6 抠图明明成功了(crop_state=1)却看不到图;原图也看不到。
+- **排查(对照老代码 + 实测,排除一串)**:① operate BaseUrl 实测=`http://127.0.0.1:10010/`(本机网关,对,没走外网)② `getSourcePictures`/`SourcePictureVO`/`FastDFSClient` 改造前后**一字未改** ③ FastDFS 协议下载实测通(621KB)。
+- **真根因**:operate 看图 = `{网关}/group1/...?token`,网关 `routes[5]`(aivfo-dfs)把 `/group1/**` 转发到 **`http://${server.ip}`(无端口=80)**。但 **108 测试环境 FastDFS nginx 在 8888 端口,80 没有服务** → 实测 `http://192.168.0.108/group1/...` = **HTTP 000(连不上)**,`:8888` = HTTP 200。所以 operate 看任何图都拿不到。
+- **性质**:**非重构改坏**(老代码 + 各 profile 都是 `http://${server.ip}` 无端口——因生产/老环境 nginx 在 80)。是 **108 测试环境特有的配置不匹配**(108 nginx 装在 8888,网关沿用了生产的 80)。
+- **修复**:`aivfo-gateway` local profile `routes[5].uri` 改为 `http://${server.ip}:8888`,重编译网关 + 重启。
+- **验证(闭环)**:登录拿真 token → `http://127.0.0.1:10010/group1/...?token=<真token>` → **HTTP 200,636786 字节(完整图)**。原图(source_image_url)和抠图(image_url)都走此 `/group1` 路由,**一并解决 operate 看原图 + 看抠图位置**。
+- 注:`/group1` 路由经网关需有效 token(operate 登录后自带,故能过;无/假 token 返回"请登陆后再操作")。网关重启后 operate 无需重启,下次看图请求自动走新路由。