feat: 媒体机直传 + 向量回填

- media: spider 下载图片后按内容 sha1 生成 key,经后端预签名直传 S4,上报只带 key
  (spider 不持有 AK/SK;单张失败自动回退为上报 URL)
- embed: 新增 embed 子命令,从后端领取缺向量的图片→下载→本地 CLIP 编码→回传
  (媒体拆分后后端拿不到图片字节,向量只能靠回填补齐)
- serve: 服务化常驻模式(领取 crawl 任务 → 抓取 → 回报)
- config: 新增 media.upload/concurrency、vision.endpoint/concurrency
This commit is contained in:
toom1996
2026-10-25 00:15:22 +08:00
parent 6020426815
commit 3fe0b86e11
11 changed files with 1305 additions and 2 deletions

View File

@ -32,9 +32,18 @@ type RunwayIngest struct {
}
// RunwayLook 一场秀中的一个 look:1 张主图 + 0..N 张细节图。
//
// 两种上报形态(媒体机直传开关打开时用 key,否则用 URL):
// - 旧:Main/Details 给原始 URL,后端自己下载上传;
// - 新:MainKey/DetailKeys 给已上传的存储 key,后端跳过下载直接落库。
type RunwayLook struct {
Main string `json:"main"` // 主图(look)原始 URL
Details []string `json:"details"` // 细节图原始 URL 列表
MainKey string `json:"main_key,omitempty"` // 主图已上传 key(runway/<sha1>.jpg)
DetailKeys []string `json:"detail_keys,omitempty"` // 细节图已上传 key
MainSize int64 `json:"main_size,omitempty"` // 主图字节数
DetailSizes []int64 `json:"detail_sizes,omitempty"` // 细节图字节数(与 DetailKeys 对齐)
}