chore(contracts): 同步契约(默认模型改用压缩包 sha256 匹配,补 sourceSha256 与确定性说明)
This commit is contained in:
@@ -103,7 +103,8 @@ rejected 已驳回
|
||||
| `fileSize` | number | 读 | |
|
||||
| `thumbnailUrl` | string\|null | 读 | |
|
||||
| `conversionNote` | string\|null | 读 | 由压缩包转换而来时的说明(`Hatsune Miku.pmx → GLB,已内嵌 2 张贴图`);直传模型为 null |
|
||||
| `fileSha256` | string\|null | 读 | 模型文件(转换产物)的 sha256,用于换库后定位默认模型 |
|
||||
| `fileSha256` | string\|null | 读 | 模型文件(转换产物)的 sha256 —— **每次转换都会变**,仅作记录 |
|
||||
| `sourceSha256` | string\|null | 读 | 上传压缩包的 sha256(稳定);默认模型匹配以它为准,非压缩包上传为 null |
|
||||
| `source*` | | ✅ | 来源五元组 |
|
||||
| `status` | `PublishStatus` | | |
|
||||
| `createdAt` / `updatedAt` | string | 读 | |
|
||||
@@ -115,7 +116,10 @@ rejected 已驳回
|
||||
```
|
||||
0. 环境变量 DEFAULT_MODEL_ID 指定,且该模型存在且已发布
|
||||
1. 源码内写死的默认模型种子(web-server/src/config/default-model.ts 的
|
||||
DEFAULT_MODEL_SEED):按转换产物 sha256 匹配已发布模型 —— 换库/重建库后仍然有效
|
||||
DEFAULT_MODEL_SEED):按 **sourceSha256(上传压缩包的 sha256)** 匹配已发布模型,
|
||||
换库/重建库后仍然有效;没有压缩包时退回按产物 sha256,最后按名称兜底。
|
||||
⚠ 不能用产物 sha256 当主键:实测 Assimp 的 GLB 导出不是字节级确定的,
|
||||
同一份 zip 每次转换得到的文件 sha256 都不同(BIN chunk 有十几字节浮动)
|
||||
2. models 中 format = 'vrm' 且 status = 'published' 且 is_primary = 1
|
||||
3. models 中 format = 'vrm' 且 status = 'published',按 id 升序取第一个
|
||||
4. models 中 status = 'published',按 (format='vrm' DESC, id ASC) 取第一个
|
||||
|
||||
Reference in New Issue
Block a user