feat(edit): 优化图片导入ozon问题

This commit is contained in:
2026-10-07 21:49:28 +08:00
parent 79b310efe7
commit 06dbd817f0
13 changed files with 289 additions and 70 deletions
@@ -0,0 +1,42 @@
# Ozon 图片交付排查(2026-10-07)
商品 `26662645-a6cf-4978-8fa1-154945bf2510`,SKU「月读鼬【高约22CM】盒装」,货号 `ShouBan-HYRZ-V1-001`,Ozon product_id `6537891375`。
## 已确认事实
- 发布快照包含 3 张正式 PNG 素材,显示顺序未丢失。三张发布副本均能通过原交付域名下载,HTTP 200,尺寸均为 1086×1448,大小分别为 1,226,554、1,524,027、2,025,426 字节。
- Ozon `/v2/product/pictures/info` 仅返回 1 张主图、0 张附加图;第 1、2 张交付链接均返回 `request process failed: unknown error host unreachable`。失败链接签名正确,截止时间为 2026-10-14 15:15:35(北京时间),并非签名过期。
- 七牛只读域名配置显示 `img-dev.atlas.joeyone.cn` 为 `geoCover=china`、HTTPS、正常运行、七牛桶回源;没有 Referer/IP/UA 限制。结合 Ozon 抓取错误,当前大陆加速域名的跨境连通性是本次最明确的原因。
- Atlas 发布任务在 2026-10-07 15:15:54 完成;Ozon 图片错误于约 15:17:12 出现。原流程收到商品 imported 就结束,图片仍在抓取,且 imported 分支丢弃平台警告。
## 本地修复与验证
Worker 收到 imported 后继续查询图片状态,等待完整结果;存在下载错误或缺图时保留导入身份、图片数量和脱敏提示。已创建商品不因缺图重新进入首次上架。发布结果界面对有提示的已导入任务使用警告样式,展示逐项说明;接口字段和数据库结构不变。
15 项发布 HTTP/数据库/Worker 回归通过,覆盖商品先导入、图片后到、1/3 缺图、完整成功、长时间未齐、平台警告持久化、签名链接脱敏与不重复导入。6 项既有 Worker 媒体交付/包装规格回归通过。Worker/Web 类型检查与构建、API 测试类型检查和差异检查通过;真实结果组件的模拟界面验证通过。没有修改真实商品资料或向 Ozon 提交写请求,未手动启停维护者服务。
## 已授权的线上恢复范围
1. 将该七牛域名的加速区域从 `china` 改为 `global`,保留域名、HTTPS、回源和访问控制配置。此域名的其他图片也会使用新的加速区域。
2. 域名变更生效后重新验证三张交付副本,生成新的短期签名地址。
3. 通过 Ozon `/v2/product/pictures/import` 仅更新 `ShouBan-HYRZ-V1-001` 的原 3 张图片和顺序,以 `primary_image` 明确指定第一张、`images` 传其余两张;不调用商品导入更新价格、标题或属性。
4. 查询图片导入任务和图片专用结果,必须确认主图加附加图共 3 张且无下载错误,才宣称该 SKU 恢复。
维护者已于 2026-10-07 确认执行。七牛区域变更请求于北京时间 20:56:36 受理(HTTP 200 / code 200),配置已显示 `global`;21:28:20 仍为 `processing`,域名、CNAME 和 HTTPS 保持不变。维护者随后要求停止监控,监控及其子进程已停止;暂停期间未向 Ozon 提交图片更新。维护者后续通知全球配置完成并明确要求继续,本次恢复已完成,详见下节。
## 实际恢复结果
- 恢复前七牛接口已确认 `geoCover=global`、`operatingState=success`、HTTPS 与 CNAME 不变,配置更新时间为 `2026-10-07T13:32:01.835Z`。原三张交付副本重新下载均 HTTP 200,SHA-256 与冻结发布快照一致。
- 第一轮图片任务 `5770626999` 已导入且无错误。仅提交三图的 `images` 后,平台先保留旧主图及三张附加图,随后收敛为三图,但内容顺序为 3、1、2。未仅凭任务 imported 或图片数量宣称恢复。
- 核对官方 V2 请求 schema 后,第二轮任务 `5770634249` 显式传 `primary_image=原第1张`、`images=[原第2张, 原第3张]`,最终任务 imported,无任务错误。
- 最终图片查询为 1 张主图、2 张附加图,图片错误为空。下载 Ozon 三张实际图片后以统一尺寸 RGB 内容比对原图,匹配顺序为 1、2、3,平均像素差均为 0,确认主图与附加图顺序正确。
- 仅调用图片专用更新接口,没有提交商品导入或价格/属性更新。前后核对 name、price、old_price、min_price、currency_code、description_category_id、type_id 一致;未改写 Atlas 草稿或历史发布记录。
- 临时恢复脚本、任务状态文件与官方文档浏览器已清理,无持续监控进程,未手动启停维护者服务。
## 官方依据
- [Ozon 图片查询](https://docs.ozon.ru/api/seller/#operation/ProductAPI_ProductInfoPicturesV2)
- [Ozon 图片更新](https://docs.ozon.ru/api/seller/#operation/ProductImportPicturesV2):每次提交完整目标图片集合;`primary_image` 可显式指定主图,`images` 指定其余图片顺序。本次旧主图替代场景已验证须显式恢复主图。
- [Ozon 图片直链指南](https://seller-edu.ozon.ru/libra/work-with-goods/trebovaniya-k-kartochkam-tovarov/media/foto-i-video-tovara)
- [七牛 CDN 跨境访问说明](https://developer.qiniu.com/fusion/6389/function-of-consulting-the-faq)
- [七牛加速区域配置接口](https://developer.qiniu.com/fusion/13364/fusion-api-domain-config)