Skip to content

reader.ohmygh.com 镜像分发落地(D42 载体裁决) #1

Description

@raystyle

背景

ohmycloud 侧立项 D27(reader_rs 分发面),承接你仓 D42(模型分发自维护,载体待澄清:候选 GitHub Releases 资产 / ModelScope / 自有镜像)。触发证据即你仓验收记录:v0.4.0 封版时 lan-linux 首用下载 HF tiny-rec 三连重试失败,scp 手动放置后 --offline 才全通。ohmycloud 已完成三路研究(R2 公开服务面、GitHub Actions 上传路线、HF 模型镜像与许可)与用户四裁,本 ISSUE 同步裁决与规范,请按此立项落地。

用户四裁(ohmycloud 追问链第 16 轮 Q27 至 Q30)

物料 默认 兜底
OCR 模型(tiny / small 两档) reader.ohmygh.com 镜像 HF 直连、GitHub Releases(模型专用 tag)
self update 二进制 镜像侧 latest.json GitHub Releases API

纪律:清单只发一份(镜像侧为真);兜底只兜资产可用性,客户端不信任第二份未签名清单;两渠道资产共用同一 sha256 验(digest 校验复用你仓现有实现)。

ohmycloud 侧负责(基建,另行落地)

R2 专用桶挂自定义域 reader.ohmygh.com(关 r2.dev,公开仅自定义域);就绪后在本 ISSUE 回执。S3 凭据(桶级 Object Read & Write)建好后给本仓进 GitHub Secrets:R2_ACCESS_KEY_ID 与 R2_SECRET_ACCESS_KEY。

reader_rs 侧待办

  1. 模型源链:ModelStore 接入镜像源(预取入缓存目录,或 patch 源链;接入形态你仓定),失败回退 HF 直连,再回退 GitHub Releases 模型专用 tag
  2. self update:先读 latest.json,失败回退 GitHub Releases API;minisign 签名字段(离线私钥,minisign-verify 零依赖)为可选项,是否上由你仓裁
  3. CI:release.yml 加 mirror job(gh release download 本 tag 资产后 rclone copy 上桶,latest.json 最后传,清单即发布提交点);新增 mirror-models.yml(workflow_dispatch 加每周 schedule;注意 schedule 只在默认分支生效且仓库 60 天无活动自动停用,文档注明手动补跑入口)

规范(自包含摘录,ohmycloud S009)

  • 路径:reader//(asset 与 .sha256 边车同名对)与 models///
  • 清单 reader/latest.json(Tauri v2 形状加 sha256):
{
  "version": "0.4.1",
  "pub_date": "2026-09-03T00:00:00Z",
  "platforms": {
    "x86_64-pc-windows-msvc": {
      "url": "https://reader.ohmygh.com/reader/0.4.1/reader-v0.4.1-x86_64-pc-windows-msvc.zip",
      "sha256": "0ec041fa38...",
      "signature": "可选,minisign"
    }
  }
}
  • 清单 models/models.manifest.json:数组,每项 repo / rev / file / sha256 / license / mirrored_at
  • 缓存头(上传时逐对象带):版本化资产 public, max-age=31536000, immutable;latest.json public, max-age=60
  • rclone 配置:type = s3,provider = Cloudflare,endpoint = https://.r2.cloudflarestorage.com;Cache-Control 用 --header-upload 带
  • 源校验免下载:Hf tree API /api/models//tree/main 的 lfs.oid 即文件 sha256,公开免 token;源 sha256 漂移只告警不自动跟(钉死值以你仓现有 ppocr-rs pin 为准)
  • 许可:PaddlePaddle PP-OCRv6 safetensors 全系(tiny_det 07595f9 / tiny_rec 6f2d2d5 / small_det eae2ee9 / small_rec fe049fb 等)HF API 实证 Apache-2.0 非 gated,再分发合规;义务仅随分发物带 Apache-2.0 文本与 PaddlePaddle 出处声明
  • 两档四仓:PP-OCRv6_tiny_det / tiny_rec / small_det / small_rec_safetensors(tiny 与 small 是 v6 档位,v5 只有 mobile 与 server,别取错系)

验收判据(建议)

  • 大陆机器首用 --ocr:镜像源下载两档全通,不再 scp
  • self update 镜像通道真升级(或 --force 重装)走 latest.json 成功
  • 镜像不可达时模型回退 HF 与 GitHub、升级回退 GitHub API 仍可用

请回复

  1. 路径与清单 schema 是否照此落地(有异议提出)
  2. ModelStore 接入形态选型:预取入缓存目录,还是 patch 源链
  3. minisign 可选项上不上

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions