Skip to content

作者

novlan1

2025.9.19

Git 仓库文件自动同步 COS

仓库地址:https://git.aow.com/pmd-mobile/pmd-h5/cos

1. 目标

  1. 提高效率,自动同步、自动刷新 CDN
  2. 收拢权限,提升安全性
  3. 统一管理,方便维护

2. 原理

2.1. 自动同步

  1. 监听 git push
  2. 自动同步到 COS
  3. 自动更新 CDN 缓存

2.2. 自动复制

海外域名支持多语言自动复制,具体规则如下:

  1. 将当前业务的某语言作为基准
  2. 将基准语言目录下的文件,复制到其他语言目录。当其他语言目录相应位置已有文件时,忽略
  3. 将当前域名下下所有文件,复制到国内域名下

以三角洲海外来说:

  1. cdn.dfpcevos.igame.tencent.com/os-delta-match/zh-cn 复制到 cdn.dfpcevos.igame.tencent.com/os-delta-match/encdn.dfpcevos.igame.tencent.com/os-delta-match/zh-hant
  2. cdn.dfpcevos.igame.tencent.com/os-delta-match 复制到 image-1251917893.file.myqcloud.com/os-delta-match

由于历史原因,cdn.nes.sgameglobal.com 域名下的 HoK 赛事、商家,同步规则与上不同,具体如下:

  1. cdn.nes.sgameglobal.com/hok-match 复制到 cdn.nes.sgameglobal.com/hor-match-encdn.nes.sgameglobal.com/hok-match-fr 等等
  2. cdn.nes.sgameglobal.com/hor-match* 复制到 image-1251917893.file.myqcloud.com/hor-match*

3. 目录说明

Git 目录和 CDN 链接的对应关系如下:

Git 目录

CDN 链接

COS 链接

对应业务

cdn.dfpcevos.igame.tencent.comcdn.dfpcevos.igame.tencent.comcdn-1377130694.cos.ap-singapore.myqcloud.com海外三角洲行动
cdn.esports.tencent.comcdn.esports.tencent.comcdn-esports-1320306881.cos.ap-singapore.myqcloud.com游戏人生通用海外赛事
cdn.nes.sgameglobal.comcdn.nes.sgameglobal.comnes-pro-1310788819.cos.ap-singapore.myqcloud.comHoK 赛事、商家
download.ecafe.gamedownload.ecafe.gamecdn-download-cos-1320306881.cos.ap-singapore.myqcloud.com海外网吧
image-1251917893image-1251917893.file.myqcloud.comimage-1251917893.cos.ap-guangzhou.myqcloud.com国内各业务

4. 规范

出海业务目录规范

  1. 业务目录以 os- 开头,比如 os-delta-match,方便跟国内区分
  2. 目录结构为 域名/业务/语言/类型/文件,如 cdn.dfpcevos.igame.tencent.com/os-delta-match/zh-cn/images/xxx

5. 更新须知

  1. Git 目录与COS目录一一对应,目录结构保持一致
  2. 更新前必须确认好,避免覆盖,影响现网
  3. 必须提 MR
  4. 文件限制: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. 流水线地址

这里