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

AWS CodeCommit大文件上传卡顿问题及与Elastic Beanstalk集成诉求

解决AWS CodeCommit大代码包上传卡顿挂起的方案

我之前也碰到过类似的大文件上传到CodeCommit卡顿的问题,结合AWS的最佳实践和自己的踩坑经验,给你几个可行的解决方案:

1. 调整Git的缓冲区及超时配置

你已经设置了http.postBuffer,但900MB的代码量可能需要更大的缓冲区,同时补充超时相关配置来避免中途挂起:

  • 把缓冲区调至1GB(覆盖之前的设置):
    git config --global http.postBuffer 1073741824
    
  • 禁用分块传输编码,部分场景下能提升大文件上传稳定性:
    git config --global http.chunkedTransferEncoding false
    
  • 增加Git的网络超时阈值,避免因临时网络波动触发中断:
    git config --global http.lowSpeedLimit 0
    git config --global http.lowSpeedTime 900
    

2. 排查并处理超大单个文件

CodeCommit对仓库总大小支持不错,但单个超大文件(比如超过100MB)是上传卡顿的常见诱因:

  • 用命令找出仓库里的大文件:
    git ls-files -s | sort -k 2 -n
    
  • 非必要的大文件(如日志、本地依赖包、临时二进制文件)直接加入.gitignore排除;如果是业务必需的大文件,建议用Git LFS管理:
    1. 安装Git LFS:git lfs install
    2. 追踪目标大文件类型:git lfs track "*.zip"(替换成你的文件类型)
    3. 提交.gitattributes文件,再重新提交大文件

3. 拆分提交批次

一次性推送900MB代码对网络和服务端都是不小的压力,拆分提交能降低风险:

  • 先推送部分目录的代码(比如核心业务代码),确认上传成功后再推送剩余部分
  • 或者先初始化仓库,上传一个空文件或小配置文件建立连接,再逐步推送其余代码

4. 切换至SSH协议上传

HTTPS协议在大文件上传时偶尔会出现兼容性问题,SSH协议通常更稳定:

  1. 在AWS IAM中生成并配置SSH密钥,关联到你的用户账号
  2. 修改仓库远程地址为SSH格式:
    git remote set-url origin ssh://git-codecommit.<你的区域>.amazonaws.com/v1/repos/<仓库名>
    

5. 清理本地Git仓库冗余数据

本地仓库的冗余对象可能拖慢上传效率:

  • 执行仓库优化命令清理冗余:
    git gc --aggressive
    git prune
    

如果以上方法都没解决问题,可以开启Git的详细日志排查卡点:

GIT_CURL_VERBOSE=1 git push

这个命令会输出完整的HTTP请求日志,能帮你定位到具体是哪个环节出现了挂起。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:14:35