gongxiangp2/docs/AI生图平台桶缓存落地对接清单.md
2026-05-07 16:37:22 +08:00

9.9 KiB
Raw Blame History

AI 生图平台桶缓存落地对接清单

交付对象:AI 生图平台负责人 当前主接口域名:https://sc.jiansun.vip 当前资源主域名:https://s3.jiansun.vip 历史旧资源域名:https://s3.yydd.ai(不再作为默认入口) 文档时间:2026-04-29 当前状态:180.97.215.57 读缓存入口已停用,本文保留对接口径和历史方案说明。

1. 这次要做的事情

原计划把新入口服务器 180.97.215.57 上独立数据盘中的 180G 空间,用作 AI 生图平台相关资源的读取缓存。该入口现在已经停用,不再作为正式资源入口或联调目标。

当前目标调整为:

  • 对外资源域名继续统一使用 https://s3.jiansun.vip
  • 展示型图片继续优先写入 /gongxiangpan/public-display/
  • 排障和联调优先检查 180.97.221.140 -> FRP -> 192.168.58.20:9000 链路

2. 这次不会变的东西

下面这些默认都不变:

  • 桶本体位置不变,真实存储仍在生产机 192.168.58.20:9000
  • AI 生图平台的接口入口仍然是 https://sc.jiansun.vip
  • 对外资源主域名仍然是 https://s3.jiansun.vip
  • 历史旧资源域名 https://s3.yydd.ai 不再作为默认对接地址
  • 不迁桶,上传链路不因 180.97.215.57 停用而变化

一句话说清楚:

180.97.215.57 读缓存入口已经停用,但桶没有搬走,正式资源域名仍然是 s3.jiansun.vip。

3. 当前已经确认的事实

当前资源入口链路是:

s3.jiansun.vip
  -> 180.97.221.140
  -> nginx
  -> 127.0.0.1:2323
  -> FRP
  -> 192.168.58.20:9000

历史缓存盘配置曾经是:

  • 缓存目录:/data/nginx-cache/s3
  • 缓存上限:180g
  • 旧入口机资源盘:/data,总容量约 200G
  • 当前不再把这层缓存作为正式链路门禁

2026-03-18 实测真实桶链路时,使用了一个约 145MB 的真实桶对象做下载测试:

  • 直回源 127.0.0.1:29000:约 23.2 MB/s
  • 走 https://s3.jiansun.vip 第一次请求:X-Cache-Status: MISS,约 22.7 MB/s
  • 同一个 URL 第二次请求:X-Cache-Status: HIT,约 63.2 MB/s

这些历史结果只说明旧缓存方案曾经可用:

  • 首次访问主要受回源链路影响
  • 命中缓存后,速度会明显提升

基于当前入口调整,需要明确 3 个结论:

  • 180.97.215.57 读缓存方案已经停用
  • s3.jiansun.vip 仍是唯一正式资源域名
  • 后续验证重点是 180.97.221.140 入口、FRP 和 MinIO 回源,而不是旧缓存命中率

4. 我还需要 AI 生图平台这边提供什么

为了让 AI 生图平台稳定使用正式资源链路,还需要下面这些信息。

4.1 需要确认的资源范围

请提供:

  • AI 生图平台当前实际会读取的资源类型
  • 这些资源对应的 URL 样例
  • 最常访问的路径前缀

最好直接给:

  • 近 3 天最常访问的 20 个资源 URL 样例
  • 主要路径前缀清单

例如是否主要集中在:

  • 生图输入参考图
  • 生图结果图
  • 放大图、变体图、蒙版图、压缩包等固定路径前缀

4.2 需要确认是否只使用一个主资源域名

这个点非常关键。

请确认:

  • AI 生图平台后续是否统一只读 https://s3.jiansun.vip
  • 历史旧资源域名 https://s3.yydd.ai 是否已从日常默认调用中完全移除

推荐口径:

  • 主用:https://s3.jiansun.vip
  • 历史旧域名:https://s3.yydd.ai(仅用于识别历史链接)

如果旧域名和新域名长期同时对外使用,那么同一份内容就可能同时出现两个公网 URL。

4.3 需要确认文件是否“同 key 覆盖”

这个点决定缓存能不能放心加大。

请确认:

  • 同一张图后续会不会“覆盖原来的对象 key”
  • 还是每次生成新图都使用新文件名 / 新路径

最推荐的方式是:

  • 新内容永远用新 key

比如:

  • image-20260318-001.png
  • image-20260318-002.png

不推荐的方式是:

  • 总是写回同一个 URL

比如始终覆盖:

  • latest.png

原因很简单:

  • 如果同一个 URL 对应的文件内容被覆盖了,缓存里可能暂时还是旧版本
  • 这样就会出现“URL 没变,但内容短时间还是旧图”的情况

4.4 需要确认时效要求

请确认:

  • 图片更新后,允许多久内出现旧图
  • 删除后,是否允许短时间还能访问
  • 是否存在“必须秒级生效”的路径

如果某些资源要求非常高的实时性,就不能和普通静态资源用完全同一套缓存策略。

4.5 需要确认流量规模

请提供一个大致量级即可,不需要特别精确。

需要知道:

  • 峰值并发大概多少
  • 每分钟 / 每小时大概多少请求
  • 热门图片是否会被大量重复读取
  • 单张图通常多大
  • 是否有明显的突发高峰时段

4.6 需要一批联调样本

请提供:

  • 5 到 10 个真实可访问的 AI 生图平台资源 URL
  • 最好覆盖“结果图 / 参考图 / 较大文件”几类

这样我可以直接按真实资源做灰度验证,而不是拿不相关对象代替。

4.7 这次不需要 AI 生图平台配合改的内容

为了避免沟通误差,这里也明确一下当前不要求你们先改的东西:

  • 不要求先改接口域名,接口仍然走 https://sc.jiansun.vip
  • 不要求先迁桶,桶本体仍然在 192.168.58.20:9000
  • 不要求先切到 s3.yydd.ai
  • 不要求先改上传链路

这次优先要拿到的是“真实读流量信息”,不是让业务先大改。

5. 对正常使用有没有影响

正常情况下,对用户是无感的。

前提是满足下面两个条件:

  • 对外主资源域名统一使用 https://s3.jiansun.vip
  • 资源尽量使用“新内容新 key”的方式,不要反复覆盖同一个 URL

只要做到这两点,链路效果就是:

  • 统一从 s3.jiansun.vip 进入
  • 通过当前正式入口回源到生产 MinIO
  • 用户看到的还是同一个公网 URL

6. 会不会出现“同一张图两个 URL”

情况 1:旧缓存本身

不会,但该方案已经停用。

缓存不会凭空再生成一个给用户使用的新 URL。

用户访问的仍然是原来的公网地址,比如:

https://s3.jiansun.vip/xxx.png

旧缓存只是入口服务器内部把这个 URL 对应的内容存到磁盘里。

也就是说:

  • 对用户看到的 URL 不变
  • 对程序调用的 URL 不变
  • 只是旧入口机内部多了一份缓存文件

情况 2:两个域名同时都在用

会。

如果下面两个地址同时长期对外使用:

  • https://s3.jiansun.vip/xxx.png
  • 历史旧链接:https://s3.yydd.ai/xxx.png

那么从“公网 URL”角度看,就是两条 URL 指向了同一份内容。

所以当前建议非常明确:

  • s3.jiansun.vip 主用
  • s3.yydd.ai 不再作为默认入口

不要两个一起作为默认入口使用。

7. 会不会出现“缓存里一张图,桶里又是另一个 URL”

从用户角度看,不会多出一个可见 URL。

但有一个需要特别注意的现实问题:

如果同一个 URL 被反复覆盖内容

那么就可能出现:

  • 桶里已经是新图
  • 缓存里短时间还是旧图

这时候不是“两个 URL”,而是:

  • 同一个 URL,在不同时间点可能先返回旧内容,再返回新内容

这也是为什么我强烈建议:

  • 新图使用新 key
  • 不要反复覆盖同一个对象地址

如果业务上确实必须覆盖同一个 URL,那就必须额外做:

  • 清缓存机制
  • 或单独降低这类路径的缓存时间

8. 推荐的最终口径

建议 AI 生图平台后续按下面这套规则执行:

域名规则

  • 正式资源域名:https://s3.jiansun.vip
  • 历史旧域名:https://s3.yydd.ai(仅识别,不再默认使用)

URL 规则

  • 对外只认主域名,不混用两个资源域名
  • 新内容尽量使用新 key,不覆盖老 key

链路规则

  • 把 AI 生图平台的热点读流量优先收敛到 s3.jiansun.vip
  • 当前正式入口为 180.97.221.140
  • 180.97.215.57 不再作为正式资源入口或缓存入口

9. 现在就可以推进的下一步

如果 AI 生图平台负责人能补齐下面 4 项,我就可以继续往下收口:

  1. 确认主用资源域名是否统一为 s3.jiansun.vip
  2. 提供 AI 生图平台真实会读取的路径前缀或 URL 样例
  3. 明确是否存在“同 key 覆盖”
  4. 提供一组真实联调 URL 用于灰度测试

拿到这些信息后,我这边会继续做:

  1. 按真实热点路径确认是否需要“分路径缓存策略”
  2. 区分哪些资源适合长缓存,哪些资源要短缓存
  3. 如果存在“同 key 覆盖”,评估是否需要补清缓存机制
  4. 用真实 URL 做灰度验证,再决定是否正式放量

10. 建议负责人直接按下面模板回复

为了节省来回沟通时间,建议 AI 生图平台负责人直接按这个格式回:

1. 主用资源域名:
   例如:统一使用 https://s3.jiansun.vip

2. 历史旧域名是否已停止默认调用:
   例如:是,`https://s3.yydd.ai` 不再作为默认入口

3. 主要读取的资源类型:
   例如:生图结果图、参考图、放大图、变体图、压缩包

4. 主要路径前缀或 URL 样例:
   例如:/gongxiangpan/ai-output/... 或 /gongxiangpan/ai-input/...

5. 是否存在同 key 覆盖:
   例如:有 / 没有

6. 时效要求:
   例如:更新后允许 5 分钟内旧图;某些路径要求秒级生效

7. 流量规模:
   例如:高峰每分钟约多少次读取,热门图片是否会被重复访问

8. 联调样本:
   例如:提供 5 到 10 个真实可访问 URL

如果只要一句最短版本,可以直接转给对方:

这次不是迁桶;180.97.215.57 读缓存入口已停用,正式资源域名仍然是 s3.jiansun.vip,当前应通过 180.97.221.140 入口回源到 192.168.58.20:9000。要继续推进,需要 AI 生图平台确认主用域名、真实热点路径、是否会覆盖同一 URL、以及给一组联调样本。