43 lines
2.0 KiB
Markdown
43 lines
2.0 KiB
Markdown
---
|
|||
|
|
id: T-593
|
||
|
|
title: AI工场部分导出、JPEG 转码与已存在商品目录安全处理
|
||
|
|
phase: 7
|
||
|
|
deps: [T-592]
|
||
|
|
status: TODO
|
||
|
|
created: 2026-07-11
|
||
|
|
---
|
||
|
|
|
||
|
|
## 问题 / 背景
|
||
|
|
|
||
|
|
用户可在主图/详情图未满目标数量时导出当前终选。导出要让用户选择父目录,再创建商品 ID 子目录;目标已存在不能简单合并,否则旧序号图片会残留,也不能递归清空可能包含用户文件的目录。
|
||
|
|
|
||
|
|
## 方案
|
||
|
|
|
||
|
|
- 点击导出用目录选择框选父目录,在其下创建 `<商品ID>/`。
|
||
|
|
- 按连续终选顺序实际转码并写:`商品ID_主图_1.jpg`、`商品ID_详情图_1.jpg`;质量沿用应用图片质量设置,透明图按已验证规则铺白底。
|
||
|
|
- 主/详情总数为 0 禁止;其他未满组合均允许,确认框显示 X/目标数。
|
||
|
|
- 导出前预检全部源文件和解码,使用 staging 写完整后再发布,失败不留下半套结果。
|
||
|
|
- 目标目录存在时只提供:
|
||
|
|
- 覆盖本软件导出的图片:仅匹配当前商品命名规则的旧主图/详情图文件,保留其他文件;默认仍需确认。
|
||
|
|
- 新建带时间目录:`商品ID_YYYYMMDD_HHMMSS/`。
|
||
|
|
- 取消(默认)。
|
||
|
|
- 不提供合并;成功后提示实际路径和数量,并提供打开目录。
|
||
|
|
|
||
|
|
## 验收要点
|
||
|
|
|
||
|
|
- 只主图、只详情、两类部分、满额和零图片场景均正确。
|
||
|
|
- PNG/WebP 真正输出可解码 JPEG,不是改后缀;序号与终选顺序一致。
|
||
|
|
- 已存在目录三选正确;覆盖只删除受管命名文件,用户其他文件保持字节不变。
|
||
|
|
- 某源图缺失/损坏时导出前失败,原目标不被部分改写。
|
||
|
|
- 路径穿越、非法商品 ID、只读目录、同秒时间目录冲突和文件锁有中文错误。
|
||
|
|
|
||
|
|
## 边界(不改什么)
|
||
|
|
|
||
|
|
- 不递归清空用户选择目录,不提供合并。
|
||
|
|
- 不要求达到 9/12,不上传或修改蝦皮。
|
||
|
|
- 不导出原始任务密钥、提示词、日志或 SQLite 数据。
|
||
|
|
|
||
|
|
## 执行记录
|
||
|
|
|
||
|
|
(完成后记录文件安全测试和人工导出验证。)
|