如何将2.3GB的JSON文件上传至GitHub仓库?Git LFS超限问题求解
解决GitHub Git LFS单文件2GB限制的方案
方案1:拆分大JSON文件
把2.3GB的JSON拆分成多个小于2GB的子文件,用Git LFS管理这些拆分后的文件,应用部署时再合并读取。
- 拆分脚本示例(Python):
import json def split_json(input_file, chunk_size=1.8e9): # 按1.8GB拆分,留足余量 with open(input_file, 'r', encoding='utf-8') as f: data = json.load(f) # 针对数组结构拆分;若为对象,可按键分组拆分 if isinstance(data, list): chunk_num = 0 # 估算每个chunk容纳的元素数,可根据实际数据调整 chunk_element_count = int(chunk_size / 100) for i in range(0, len(data), chunk_element_count): chunk = data[i:i+chunk_element_count] with open(f'large_data_chunk_{chunk_num}.json', 'w', encoding='utf-8') as chunk_f: json.dump(chunk, chunk_f) chunk_num += 1 split_json('large_data.json')
- 操作步骤:
- 运行脚本拆分文件,确保每个子文件大小<2GB
- 执行
git lfs track "*.json"跟踪所有拆分后的子文件 - 提交并推送到仓库
- 应用部署时,读取所有子文件并合并为原JSON结构使用
方案2:无损压缩后存储
JSON文件的压缩率通常很高(gzip可达70%-90%),压缩后大概率能降到2GB以下。
- 压缩命令(Linux/macOS):
gzip -k large_data.json # -k参数保留原文件,生成large_data.json.gz
- Windows可使用7-Zip等工具选择gzip格式压缩,确保压缩后文件体积<2GB
- 操作步骤:
- 压缩完成后,执行
git lfs track "*.gz"跟踪压缩包 - 提交并推送到仓库
- 应用部署时,先解压
large_data.json.gz再读取使用
- 压缩完成后,执行
方案3:GitHub Releases存储+仓库内保留引用
如果上述方案都不适用,可把大文件上传到GitHub Releases,然后在仓库中保留一个指向该文件的配置文件,应用部署时从Release下载文件。
- 操作步骤:
- 可选压缩JSON文件,上传到仓库的Releases页面
- 在仓库中创建
data_source.json,内容示例:
{"data_url": "https://github.com/your-username/your-repo/releases/download/v1.0/large_data.json.gz"}
- 提交配置文件到仓库,应用部署时读取该URL并下载目标文件
内容的提问来源于stack exchange,提问作者Hugo Albert
相关产品推荐
相关产品推荐

