如何从Helm的GitHub仓库获取二进制文件并使用Python脚本下载?
通过Python脚本下载Helm最新正式版本二进制文件
提前安装所需依赖:pip install pygithub requests
核心修改说明
- 二进制文件写入必须使用
wb二进制写模式,不可使用普通文本写模式w - 需先通过PyGithub获取仓库最新正式发布版本,遍历版本关联的发布资产匹配对应架构的二进制压缩包
- 二进制文件下载需要单独用
requests库请求资产下载地址,写入本地文件
完整可运行代码
from github import Github import requests def get_helm(filename): # 使用with上下文管理器自动管理文件句柄,无需手动关闭 with open(filename, 'wb') as f: # 如需提升接口请求限额,可在Github()中传入个人访问令牌,格式为Github("你的访问令牌") g = Github() r = g.get_repo("helm/helm") # 获取最新的非预发布正式版本 latest_release = r.get_latest_release() # 遍历发布资产,匹配Linux amd64架构的二进制压缩包,可按需修改匹配规则 target_asset = None for asset in latest_release.get_assets(): if "linux" in asset.name and "amd64" in asset.name and asset.name.endswith(".tar.gz"): target_asset = asset break if not target_asset: raise Exception("未找到匹配架构的Helm二进制包") # 流式下载二进制内容写入文件,避免大文件占用过多内存 resp = requests.get(target_asset.browser_download_url, stream=True) for chunk in resp.iter_content(chunk_size=8192): f.write(chunk) return filename
注意事项
- 无GitHub认证的情况下单IP每小时最多可调用60次GitHub公开接口,调用频率较高时建议传入个人访问令牌,可将限额提升到每小时5000次
- 上述代码默认匹配Linux amd64架构的二进制包,如需其他架构可修改资产匹配规则:匹配关键词包含
darwin对应macOS版本,包含windows对应Windows版本,包含arm对应arm架构版本 - 下载得到的文件为tar.gz压缩格式,如需自动解压可额外添加tar文件解压逻辑
内容的提问来源于stack exchange,提问作者BloodLord
相关产品推荐
相关产品推荐

