
video-autopilot-kit 安全自动更新原理SHA-256 校验、备份事务与一键回滚如何保护你的本地数据【免费下载链接】video-autopilot-kitFill-in-your-own-data framework for YouTube / short-form video automation: CapCut JSON ffmpeg tooling an onboarding questionnaire. Ships with zero private data.项目地址: https://gitcode.com/gh_mirrors/vi/video-autopilot-kitvideo-autopilot-kit 是一个「填入你自己的数据」的 YouTube / 短视频自动化框架CapCut JSON ffmpeg 工具链 引导问卷它自带的安全自动更新机制让升级这件事变得可靠SHA-256 全量校验确保下载的安装包一个字节都没被篡改备份事务在替换文件前先把旧版本完整存档一键回滚则让任何一次更新都能秒级撤销。三层防线共同保证你的配置、素材、频道状态等本地数据永远不会被更新流程误伤。一、三层保护总览更新前先「验货」更新中「留底」更新后「可撤销」可以把安全更新想象成一次有保险的搬家 保护层解决的问题核心机制 SHA-256 校验安装包是否被篡改、传输是否损坏整包哈希 逐文件哈希双重比对任一不符立即中止 备份事务更新中途失败旧文件怎么办替换前先备份到事务目录并记录「新增 / 替换 / 移除」台账⏪ 一键回滚更新完成后发现有问题按台账恢复旧文件还原安装状态状态标记为已回滚整个更新管理器由 src/release_manager.py 实现路径安全与完整性断言逻辑集中在 src/release_integrity.py发布策略兼容窗口、迁移声明、保护路径声明在 release-manifest.json 中。二、SHA-256 校验为什么「验一下」就能防篡改自动更新流程分两级校验两级都通过才允许触碰你的安装目录2.1 第一级整包哈希比对发布渠道文件release-channel.json中登记了最新安装包的官方 SHA-256 值。下载完成后更新器先计算整个 ZIP 的哈希分块读取大文件也不会爆内存与官方值比对。不一致直接报错archive-sha256-mismatch更新终止。2.2 第二级逐文件哈希比对安装包内部携带release-index.json文件索引逐一登记每个文件的路径、大小和 SHA-256。更新器会执行一整套「验货清单」项目 ID 核对索引中的project_id必须是video-autopilot-kit防止把别的项目安装包拿来更新文件清单闭环索引里的文件不能多一个、少一个出现「未登记的多余文件」立即失败逐文件哈希重算每个文件解压后重新计算 SHA-256与索引比对ZIP 路径安全拒绝绝对路径、..上跳、大小写碰撞、保留文件名如CON等恶意/异常成员防止「ZIP 滑出目录」类攻击。这些校验逻辑对应 src/release_manager.py 中的verify_archive函数。任何一级失败都属于fail-closed失败即关闭策略宁可不更新也不安装一个没验证过的包。2.3 还有一道隐私闸门构建发布包时会扫描所有文本文件命中deny_text_patterns本地用户路径、凭据特征等立即报错确保发布包里只有代码、模板和文档没有用户媒体、凭据或机器特定路径。这条边界声明在 release-manifest.json 的privacy字段中配套语义扫描见 scripts/public_privacy_gate.py。三、备份事务更新为什么是「可保存的存档」3.1 只动「登记在册」的文件更新器只拥有上一版release-index.json中声明过的路径。你目录里的未知文件一律不碰受保护路径config.py、profiles/、projects/、data/、videos/、assets/、channel_state.json、outcomes/、.video-autopilot/、*.local.*更是永不覆盖、永不删除——即使发布包试图包含这些路径构建时就会被判定为非法。3.2 事务台账每一步都记账应用更新前系统生成一个带时间戳的事务 ID并创建备份目录.video-autopilot/backups/UTC事务ID/ ├── files/ # 被替换/移除文件的原始副本 ├── transaction.json # 台账created / replaced / removed └── previous-install-state.json # 更新前的安装状态随后每个文件的替换都是「先备份 → 原子写入 → 更新台账」的顺序完成写入走.update-tmp临时文件再原子改名不会出现写一半的残文件。3.3 出异常立即自动回滚如果在替换过程中任何一步抛出异常系统立刻执行两件事按台账逆向恢复删除本次新增的文件用备份还原被替换和移除的文件恢复更新前的install-state.json并把事务状态写为ROLLED_BACK。也就是说即使网络中断、磁盘写满导致更新失败你的安装目录也会回到更新前的样子且状态文件明确记录了这次失败便于排查。四、一键回滚手动撤销更新的完整步骤更新完成状态COMMITTED后发现新版本有问题一条命令即可退回python src/release_manager.py rollback --install-root 你的安装目录回滚命令会做严格的「预检」验证事务 ID 合法、备份文件齐全、事务状态可回滚然后按台账恢复文件、还原安装状态并把状态标记为MANUALLY_ROLLED_BACK。如果省略--transaction参数默认回滚最近一次事务指定事务 ID 则精确回滚历史中的某一次。日常你也可以用其他子命令掌握更新状态check只查询是否有可用更新顺便列出本地被改动的受管文件update --apply手动确认后执行更新auto非阻塞自动更新——只在声明的兼容窗口内自动升级网络失败只缓存告警、不打断你的剪辑工作selftest对整套发布/更新/回滚逻辑做内置自检。五、安全设计速查表哪些情况会自动放行哪些会直接刹车 场景行为说明网络 / 渠道检查失败非阻塞结果缓存更新失败不影响正常编辑工作安装包哈希不匹配立即中止fail-closed绝不安装未验证的包受保护路径出现在发布包中判定非法拒绝安装你的config.py、素材目录永远安全主版本 / 不兼容版本返回CONFIRM_REQUIRED必须人工显式确认才会继续本地改过受管文件返回CONFIRM_REQUIRED并列出文件清单避免悄悄覆盖你的本地修改完整规则可参考项目内的升级契约文档open-source-release-and-upgrade.md以及提交在仓库根目录的 sync-receipt.json公开发布文件的 SHA-256 快照用于检测同步漂移。六、关键文件索引文件作用src/release_manager.py更新管理器主体构建、校验、事务、回滚、自动更新src/release_integrity.py路径安全断言、状态/台账校验等完整性基座release-manifest.json发布清单受管文件、保护路径、兼容窗口、迁移声明install_or_upgrade.py仓库根目录的安装 / 引导脚本scripts/public_privacy_gate.py发布包隐私语义扫描闸门写在最后对新手来说记住三句话就够了先验后用——SHA-256 两级校验不过一个文件都不会被替换备份先行——每次更新都是一笔「有台账的事务」中途失败自动回滚随时可退——rollback一条命令把安装目录送回更新前。正是这套「校验 事务 回滚」的组合拳让 video-autopilot-kit 的自动更新既省心又不会拿你的本地数据冒险。【免费下载链接】video-autopilot-kitFill-in-your-own-data framework for YouTube / short-form video automation: CapCut JSON ffmpeg tooling an onboarding questionnaire. Ships with zero private data.项目地址: https://gitcode.com/gh_mirrors/vi/video-autopilot-kit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考