cnb-rs download lfs-link
cnb-rs download lfs-link <OID> [-n FILENAME]获取 git LFS 文件预签下载链接(不下载文件,输出到 stdout)。
为什么不直接下载
LFS 文件常 GB 级,CLI 直接下载体验差。本命令仅返回预签 URL,让你用 aria2c -x16、curl -OJL 等专业工具配合下载(支持断点续传 / 多线程)。
选项
<OID>: LFS 文件的 OID(必填,sha256)-n, --name <FILENAME>: LFS 文件名称(可选,未提供时默认用 oid 作为文件名)
继承的全局选项:
--repo <REPO>: 指定仓库路径--domain <DOMAIN>: 指定目标域名
如何拿 OID
bash
# 列出当前仓库所有 LFS 文件及其 oid
$ git lfs ls-files -l
abc123def... * models/large-model.bin
def456abc... * assets/video.mp4也可以直接读 .gitattributes 中标记为 LFS 的文件的指针文件(git show HEAD:<path>)。
示例
bash
# 拿链接到 stdout
$ cnb-rs download lfs-link abc123def
https://cnb.cool/.../lfs/abc123def?X-Amz-Signature=...
# 配合 aria2c 多线程下载
$ aria2c -x16 -s16 -o model.bin "$(cnb-rs download lfs-link abc123def -n model.bin)"
# 配合 curl 带文件名下载
$ curl -OJL "$(cnb-rs download lfs-link abc123def -n large-model.bin)"
# 用 xargs 批量下载多个 LFS 文件
$ git lfs ls-files -l | awk '{print $1}' | xargs -I{} sh -c \
'curl -OJL "$(cnb-rs download lfs-link {})"'