作者
novlan1
2025.9.19
Git 仓库文件自动同步 COS
仓库地址:https://git.aow.com/pmd-mobile/pmd-h5/cos
1. 目标
- 提高效率,自动同步、自动刷新 CDN
- 收拢权限,提升安全性
- 统一管理,方便维护
2. 原理
2.1. 自动同步
- 监听
git push
- 自动同步到 COS
- 自动更新 CDN 缓存
2.2. 自动复制
海外域名支持多语言自动复制,具体规则如下:
- 将当前业务的某语言作为基准
- 将基准语言目录下的文件,复制到其他语言目录。当其他语言目录相应位置已有文件时,忽略
- 将当前域名下下所有文件,复制到国内域名下
以三角洲海外来说:
- 将
cdn.dfpcevos.igame.tencent.com/os-delta-match/zh-cn
复制到cdn.dfpcevos.igame.tencent.com/os-delta-match/en
和cdn.dfpcevos.igame.tencent.com/os-delta-match/zh-hant
- 将
cdn.dfpcevos.igame.tencent.com/os-delta-match
复制到image-1251917893.file.myqcloud.com/os-delta-match
由于历史原因,cdn.nes.sgameglobal.com
域名下的 HoK 赛事、商家,同步规则与上不同,具体如下:
- 将
cdn.nes.sgameglobal.com/hok-match
复制到cdn.nes.sgameglobal.com/hor-match-en
和cdn.nes.sgameglobal.com/hok-match-fr
等等 - 将
cdn.nes.sgameglobal.com/hor-match*
复制到image-1251917893.file.myqcloud.com/hor-match*
3. 目录说明
Git 目录和 CDN 链接的对应关系如下:
Git 目录 | CDN 链接 | COS 链接 | 对应业务 |
---|---|---|---|
cdn.dfpcevos.igame.tencent.com | cdn.dfpcevos.igame.tencent.com | cdn-1377130694.cos.ap-singapore.myqcloud.com | 海外三角洲行动 |
cdn.esports.tencent.com | cdn.esports.tencent.com | cdn-esports-1320306881.cos.ap-singapore.myqcloud.com | 游戏人生通用海外赛事 |
cdn.nes.sgameglobal.com | cdn.nes.sgameglobal.com | nes-pro-1310788819.cos.ap-singapore.myqcloud.com | HoK 赛事、商家 |
download.ecafe.game | download.ecafe.game | cdn-download-cos-1320306881.cos.ap-singapore.myqcloud.com | 海外网吧 |
image-1251917893 | image-1251917893.file.myqcloud.com | image-1251917893.cos.ap-guangzhou.myqcloud.com | 国内各业务 |
4. 规范
出海业务目录规范
- 业务目录以
os-
开头,比如os-delta-match
,方便跟国内区分 - 目录结构为
域名/业务/语言/类型/文件
,如cdn.dfpcevos.igame.tencent.com/os-delta-match/zh-cn/images/xxx
5. 更新须知
- Git 目录与COS目录一一对应,目录结构保持一致
- 更新前必须确认好,避免覆盖,影响现网
- 必须提 MR
- 文件限制:2025.9.19 开始无限制
6. 对比 Next Admin
维度 | Git 仓库自动同步 | Next Admin |
---|---|---|
CDN 刷新 | ✅ | ✅ |
多语言目录复制 | ✅ | ❌ |
在线压缩 | ❌ | ✅ |
易用性 | 中 | 高 |
面向人群 | 研发 | 任何人 |
7. FAQ
7.1. 如何判断是否上传成功
企业微信群有通知,或者在蓝盾查看执行记录:

7.2. 代码合并后未同步到 COS
检查是否提交了太多文件,造成变量长度超出蓝盾限制。类似:

解决方案为手动触发一次,UPLOAD_ALL_FILE_FROM_DIR
设置为要上传的目录名称,如 image-1251917893/delta-match/css
:

7.3. 为什么不把海外项目的 COS 桶和 CDN 放一起
方便成本分摊,及项目组要求
7.4. 如何获取 CDN 链接
执行 npm run cdn <File>
命令,示例如下:
npm run cdn image-1251917893/igame/redirect/pc.js

7.5. 流水线地址
这里。