You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用GitHub Actions存储和获取中等大小的私有文件?

GitHub Actions中测试依赖文件的存储与下载方案

场景与核心诉求

有一批压缩后总计5-10M的测试依赖文件,需要在GitHub Actions工作流中下载并用于测试,核心诉求为:

  • 避免增大GitHub仓库体积
  • 无需对这些文件进行版本控制
  • 避免冗余存储

现有方案分析

1. 直接提交到仓库

不推荐。直接提交会持续增大仓库体积,每次更新文件都会在Git历史中留存冗余版本,完全不符合核心诉求。

2. Git Large File Storage (LFS)

推荐使用,适配需求:

  • 主仓库仅存储文件指针,不会大幅占用仓库空间
  • GitHub Actions中可自动拉取:使用actions/checkout@v4时,只需添加lfs: true参数,即可在checkout阶段同步LFS文件
  • 操作流程:
    1. 本地安装git-lfs工具,执行git lfs install初始化
    2. 用git lfs track "你的依赖文件路径/类型"指定要跟踪的文件
    3. 提交.gitattributes和文件指针到仓库,大文件会自动上传到GitHub LFS服务器
  • 注意:5-10M的文件完全在GitHub LFS免费额度范围内,无需额外付费

3. Google Drive下载(通过GitHub Action)

可选方案,适合已有Google Drive存储习惯的场景:

  • 可选用google-drive-download-action这类第三方Action实现下载
  • 配置要点:
    • 从Google Drive文件共享链接中提取文件ID
    • 若文件为私有,需在GitHub仓库Secrets中存储认证凭据(如服务账号密钥)
    • 在工作流中调用Action,指定文件ID和本地下载路径
  • 注意:公开共享的文件无需认证,配置更简单;私有文件需维护凭据,相对繁琐

补充推荐方案

GitHub Releases

  • 把压缩后的依赖文件作为项目Release的附件上传
  • 在GitHub Actions中用curl/wget直接下载附件链接,或用actions/download-artifact类工具
  • 优势:依托GitHub生态,更新文件只需上传新Release附件,灵活可控

对象存储服务(如AWS S3、阿里云OSS)

  • 将文件上传到对象存储桶,设置公开读权限或通过IAM密钥授权访问
  • 在GitHub Actions中使用云服务商官方CLI或第三方Action下载文件
  • 优势:存储成本低,支持CDN加速,适合频繁更新的场景

GitHub Packages(通用包)

  • 将压缩文件打包为通用包上传到GitHub Packages
  • 在工作流中用gh命令行工具下载包并解压使用
  • 优势:整合GitHub权限体系,适合私有依赖管理

内容的提问来源于stack exchange,提问作者dfrankow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:52:42