3 步跑通 Gofile 批量下载:gofile-downloader 安装、清单与配置实战
【免费下载链接】gofile-downloaderDownload files from https://gofile.io项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader
gofile-downloader 是一个基于 Python 的 Gofile 批量下载命令行工具,适合需要定期从 gofile.io 拉取共享内容的开发者。它把解析链接、建立目录、并发下载、断点续传收进一条命令,下载目录、并发、超时等行为全部由 .env 文件控制。
从场景说起:一个带密码的共享文件夹
假设同事发来一条 gofile.io 文件夹链接:三层子目录、二十多个文件,其中两份设了密码。浏览器里只能逐个点开、逐个另存,大文件中断后要重新下载,带密码的还得手动输入。
gofile-downloader 的处理方式:一次请求解析整棵目录树,本地按原目录结构落盘,同名文件或目录自动追加数字后缀避免覆盖;密码通过命令行参数或清单行内传入;每个文件先写入 .part 临时文件,中断后重跑会从断点继续。
安装 gofile-downloader 并运行首次下载
运行前只需要两样东西:Python 3.10 及以上,和 uv 包管理器。uv 会在运行时自动创建虚拟环境并安装依赖,不需要手动处理。
获取代码与安装 uv
git clone https://gitcode.com/gh_mirrors/go/gofile-downloader cd gofile-downloader pip install uv下载第一个链接
uv run gofile-downloader.py https://gofile.io/d/contentid文件会保存到以链接 ID 命名的子目录;若设置了 GF_DOWNLOAD_DIR,则进入你指定的目录。终端会实时刷新进度百分比与传输速率,按 Ctrl+C 可平滑停止,未完成的文件保留为 .part。
命令行用法:单文件、清单与交互模式
Gofile 单文件与带密码文件下载
链接没有设密码时直接传链接即可。Gofile 带密码文件下载只需在命令后追加第二个参数:
uv run gofile-downloader.py https://gofile.io/d/contentid 你的密码
密码在提交给 Gofile API 前会先做 SHA-256 处理,因此命令行历史中看不到原文。
批量下载清单怎么写
清单是一个纯文本文件,每行一个链接;该行文件需要密码时,在行尾用空格追加:
https://gofile.io/d/contentid1 https://gofile.io/d/contentid2 密码2 https://gofile.io/d/contentid3 https://gofile.io/d/contentid4 密码4保存为 urls.txt 后执行uv run gofile-downloader.py urls.txt。三条规则值得注意:
- 不传密码参数时,逐行读取行内密码;
- 若执行
uv run gofile-downloader.py urls.txt 某密码,该密码对清单内所有链接生效; - 清单模式会强制关闭交互选择,任务并发数上限为 10。
交互模式下挑选文件
链接里文件很多、只想要其中几个时,用交互模式。设置 GF_INTERACTIVE=1 后运行,程序先打印全部文件的编号与路径,输入编号(空格分隔,如1 3 7)后只下载所选文件,直接回车则全部下载:
GF_INTERACTIVE=1 uv run gofile-downloader.py https://gofile.io/d/contentid⚙️ 配置下载目录与并发数:.env 参数表
在项目根目录新建 .env 文件,uv 会自动加载,避免每次在终端临时导出变量:
GF_DOWNLOAD_DIR="./downloads" GF_INTERACTIVE="1" GF_TOKEN="your_account_token_here" GF_MAX_CONCURRENT_DOWNLOADS="5" GF_MAX_RETRIES="5" GF_TIMEOUT="15.0"参数速查:
| 参数 | 作用 | 示例 |
|---|---|---|
| GF_DOWNLOAD_DIR | 下载目标目录,目录需提前创建,缺省为当前工作目录 | ./downloads |
| GF_INTERACTIVE | 置 1 开启交互挑选文件;清单模式固定关闭 | "1" |
| GF_TOKEN | 使用已有账户令牌;缺省时每次运行自动创建匿名账户 | 你的令牌 |
| GF_MAX_CONCURRENT_DOWNLOADS | 并发任务数,默认 5,清单模式上限 10 | "8" |
| GF_MAX_RETRIES | 超时重试次数,默认 5 | "10" |
| GF_TIMEOUT | 连接与读取超时(秒),默认 15.0 | "30.0" |
| GF_CHUNK_SIZE | 单次读入内存的字节数,默认 2097152 | "4194304" |
| GF_USERAGENT | 请求头 User-Agent,默认 Mozilla/5.0 | "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" |
只关心基本下载行为时,前四项通常就够用了。
🔧 常见问题排查
- 提示 URL 无效或不含 ID:传入的不是
https://gofile.io/d/xxx形式的短链。换成包含 /d/ 与内容 ID 的链接再试。 - 提示需要密码:链接设了密码但未提供或密码错误。补充命令行第二个参数,或在清单对应行尾补上密码。
- 下载中断后想继续:网络超时导致中断时直接重跑同一命令。.part 文件通过 Range 请求续传,已完整保存的文件会自动跳过。
- 清单中个别链接失败:多为链接过期或该行密码错误。把该链接单独用交互模式打开确认,再修正清单重跑。
进阶用法:脚本、定时与调参
封装成自己的下载脚本
把「固定 GF_DOWNLOAD_DIR + uv run 命令」写进一个可执行 shell 脚本,之后在任意目录传入链接即可下载,省去重复敲参数。
用定时任务批量拉取
在 cron 中注册一条任务,指向固定的清单文件与项目路径,即可实现每日自动拉取;结合断点续传,中断不会造成重复下载。
按网络状况调参
带宽充足时调高 GF_MAX_CONCURRENT_DOWNLOADS(清单模式上限 10);网络不稳时增大 GF_MAX_RETRIES 与 GF_TIMEOUT;超大文件可适当调大 GF_CHUNK_SIZE。
到这里,这篇 Gofile 文件下载教程就覆盖了从安装到批量清单、再到配置与排错的完整流程。建议的下一步:先建一个 .env 固定下载目录,再用一个三行的小清单验证批量与密码流程,最后把常用命令封装进自己的脚本,日常只需传链接。
【免费下载链接】gofile-downloaderDownload files from https://gofile.io项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考