把Surge变成无人值守下载机器HTTP API接口参考与6个自动化脚本配方【免费下载链接】SurgeBlazing fast TUI download manager built in Go for power users项目地址: https://gitcode.com/gh_mirrors/surge46/SurgeSurge 是一款用 Go 语言编写、面向进阶用户的终端 TUI 下载管理器支持多连接并发、断点续传和镜像源自动切换。它内置了一套完整的 HTTP API 接口用surge server把 Surge 以无头模式常驻在服务器上之后就能用一行 curl、一个 cron 定时任务或一段 CI 脚本提交下载、查询进度、控制限速——把它彻底变成一台无人值守下载机器。为什么选择 Surge HTTP API 做无人值守下载 ⚡速度快多连接分片并发下载 断点续传下载 ISO、大文件时优势明显REST 接口常驻服务 JSON 接口天然适合脚本、Cron、CI/CD 集成实时推送内置 Server-Sent EventsSSE事件流不用轮询就能感知下载完成安全可控Bearer Token 认证任务级 / 全局 / 默认三级限速典型场景挂机下载服务器开机后自动拉取镜像和 ISO 文件定时抓取cron 定时提交数据抓取任务白天限速、夜间全速远程管理在办公电脑上用脚本控制家里 NAS 上的下载节点一键启动 Surge 无头服务器先启动后台服务再获取认证 token# 固定端口 1700指定认证 token 和输出目录 surge server --port 1700 --token $SURGE_TOKEN --output /srv/downloads # 获取当前服务器使用的 token后续脚本要用 surge token几个实用细节端口不指定时从 1700 开始自动寻找可用端口指定--port可获得固定地址Token可通过--token参数或SURGE_TOKEN环境变量提供不传则自动生成surge token随时可查端口与 token 会自动写入本地运行时目录本机 CLI 客户端会自动发现并连接一次性批量任务surge server --batch urls.txt --output /srv/downloads --exit-when-done队列清空后进程自动退出非常适合挂 cron注意服务器默认监听0.0.0.0所有网卡所以务必配置 token详见 cmd/root_http_server.go。Surge HTTP API 认证机制Bearer Token除/health外所有接口都要求Authorization请求头APIhttp://127.0.0.1:1700 TOKEN$(surge token) curl -s -H Authorization: Bearer $TOKEN $API/health # {status:ok,port:1700,mode:local}/health免认证可直接作为监控探活端点token 要像密码一样对待不要提交到代码仓库、不要留在 shell 历史里远程访问建议放在 HTTPS 反向代理之后避免 token 明文传输参见 docs/guides/connect-to-a-remote-server.md认证中间件实现见 cmd/root_http_server.gotoken 命令见 cmd/token.go核心接口速查表方法路径说明GET/health健康检查免认证POST/download提交单个下载任务GET/download?idxxx查询指定任务进度POST/download/batch批量提交下载任务GET/list获取全部下载任务列表GET/history获取已完成历史按完成时间倒序POST/pause?idxxx暂停任务POST/resume?idxxx恢复任务DELETE/delete?idxxx移出队列保留已下载文件DELETE/purge?idxxx移出队列并删除文件 ⚠️PUT/update-url?idxxx更换下载地址源失效时用POST/clear-completed一键清空已完成任务POST/clear-failed一键清空失败任务POST/rate-limit?idxxxrateN单任务限速N 字节/秒0 为不限POST/rate-limit/global?rateN全局实时限速POST/rate-limit/default?rateN新任务默认限速GET/eventsSSE 实时事件流完整路由注册代码见 cmd/http_api.go。常用接口详解提交下载任务POST /downloadcurl -s -X POST $API/download \ -H Authorization: Bearer $TOKEN \ -H Content-Type: application/json \ -d {url:https://example.com/archive.zip,path:/srv/downloads}返回任务 ID{status:queued,message:Download queued successfully,id:57995086-...,filename:archive.zip}常用请求体字段结构定义见 cmd/root_downloads.go字段说明url必填下载地址filename/path指定文件名和目标目录mirrors备用镜像列表主源失败自动切换headers自定义请求头Cookie、鉴权等workers/min_chunk_size覆盖单任务的并发数和最小分片大小在服务器无 TUI模式下非重复任务会自动批准直接入队无需人工确认——这正是无人值守的关键。查询进度GET /download?idxxx与GET /list{id:57995086-...,url:...,progress:21.0,speed:17.8,status:downloading,eta:47,connections:7}状态对象包含progress百分比、speed、status、eta、connections等字段定义见 internal/types/models.go方便用jq直接解析。暂停、恢复与删除curl -s -X POST -H Authorization: Bearer $TOKEN $API/pause?id$ID curl -s -X POST -H Authorization: Bearer $TOKEN $API/resume?id$ID curl -s -X DELETE -H Authorization: Bearer $TOKEN $API/purge?id$ID # 连文件一起删慎用限速控制/rate-limit三件套rate参数是字节/秒的整数10485760 10 MB/s传0表示不限速# 单个任务限速 10 MB/s curl -s -X POST -H Authorization: Bearer $TOKEN $API/rate-limit?id$IDrate10485760 # 全局限速 50 MB/s curl -s -X POST -H Authorization: Bearer $TOKEN $API/rate-limit/global?rate52428800实时事件流GET /eventsSSEcurl -N -s -H Authorization: Bearer $TOKEN $API/events服务器会持续推送event: xxxdata: {json}形式的事件帧实时反映队列中的进度、完成与错误脚本里用它比轮询更省资源。调优下载性能参数通过 API 提交的任务同样受 Surge 的性能设置约束。你可以在 TUI 的 Network 设置页调整最大并发连接数、并发下载数等参数6个可直接抄走的自动化脚本配方 配方 1提交下载并等待完成#!/usr/bin/env bash set -euo pipefail APIhttp://127.0.0.1:1700 ID$(curl -s -X POST $API/download \ -H Authorization: Bearer $TOKEN -H Content-Type: application/json \ -d {url:https://example.com/image.iso} | jq -r .id) until curl -s $API/download?id$ID -H Authorization: Bearer $TOKEN \ | jq -e .progress 100 /dev/null; do sleep 2 done echo 下载完成$ID配方 2从 URL 文件批量导入#!/usr/bin/env bash set -euo pipefail # urls.txt 中每行一个 URL BODY$(jq -n [inputs | {url: ., skip_approval: true}] urls.txt) curl -s -X POST $API/download/batch \ -H Authorization: Bearer $TOKEN -H Content-Type: application/json \ -d $BODY # 全部成功 {status:queued,count:N}部分失败 status partial failures 明细配方 3监听 SSE 事件流打日志curl -N -s -H Authorization: Bearer $TOKEN $API/events | \ while IFS read -r line; do [[ $line event:* ]] echo [$(date %F %T)] $line done配方 4cron 白天限速、夜间全速# /etc/cron.d/surge-limits按实际环境替换 $SURGE_TOKEN 的值 0 9 * * * curl -s -X POST -H Authorization: Bearer ${SURGE_TOKEN} http://127.0.0.1:1700/rate-limit/global?rate10485760 0 23 * * * curl -s -X POST -H Authorization: Bearer ${SURGE_TOKEN} http://127.0.0.1:1700/rate-limit/global?rate0配方 5定期清理已完成任务保持队列清爽*/5 * * * * curl -s -X POST -H Authorization: Bearer ${SURGE_TOKEN} http://127.0.0.1:1700/clear-completed /dev/null配方 6健康探活配合监控系统# /health 免认证直接可用作外部监控探针 curl -sf http://127.0.0.1:1700/health || echo Surge 服务器离线安全部署清单 ✅不要把 API 直接暴露到公网放在 HTTPS 反向代理之后并限制来源 IPtoken 即密码使用--token显式指定避免出现在历史记录和截图中远程打开文件/文件夹类接口/open-file、/open-folder默认只允许本机请求确有需要时再通过设置开启一次性批量任务优先用--exit-when-done下载完自动退出减少常驻攻击面延伸阅读 docs/reference/commands/server.mdsurge server完整命令参考docs/guides/download-files.mdCLI 下载管理指南docs/guides/run-as-a-service.md把 Surge 注册为系统服务开机自启cmd/http_api.go全部 HTTP 路由与参数校验逻辑extension/浏览器扩展源码正是基于这套 HTTP API 构建的参考客户端【免费下载链接】SurgeBlazing fast TUI download manager built in Go for power users项目地址: https://gitcode.com/gh_mirrors/surge46/Surge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
第2课:Spring Boot 4.0核心精讲 微服务前置必备能力 文章目录一、开篇:为什么微服务开发者必须吃透Spring Boot 4.0二、Spring Boot 4.0核心新特性全景2.1 版本基线全面跃迁2.2 代码库完整模块化——最核心的架构变更2.3 JSpecify空安全注解2.4 API版本控制与HTTP服务客户端三、自动配置底层原理深度剖析3.1 从SpringB… · 2026/9/27 11:36:19
3个实战案例搞定wordpress粘贴媒体库,告别建站拖一周 3个实战案例搞定wordpress粘贴媒体库,告别建站拖一周 改个需求建站公司拖一周,这种憋屈事你遇到过吗?我干这行十年,见过太多老板因为一个小小的图片粘贴问题,被外包团队以“技术难点”为由拖延工期,最后多花几万块加急费。其实,wordpr… · 2026/9/27 11:36:13
SVG 导出 PNG 总是缺字、发糊、图片空白:前端图表导出的六个坑 流程图、思维导图、各种图表,只要是 SVG 渲染的,迟早会遇到一个需求:导出成 PNG。
网上的标准答案只有四行:把 SVG 序列化成字符串,塞进 <img>,画到 canvas 上,toBlob 导出。
const svg… · 2026/9/27 13:01:56
WebSocket 接收不到服务器端消息排查:从 IFRAME 到 window.parent 的消息监听链路 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 13:01:50
百度空间导出wordpress图解步骤:3步搞定域名服务器难题 百度空间导出wordpress图解步骤:3步搞定域名服务器难题 域名服务器搞不懂,导致百度空间内容死活导不进 WordPress?别急,这不只是你一个人的困境。很多中小企业老板都卡在这一步,明明手里有旧站资源,想换个更专业的 CMS… · 2026/9/27 13:01:50
工厂设备数据采集、可视化与告警一体化物联网方案实战 1. 从一台注塑机说起:这套方案到底要解决什么问题我在工厂车间里待过的年头不算短,见过太多“数据孤岛”的场面。一台注塑机跑了八年,操作工每天拿本子抄参数,班长拿计算器算良率,设备科长月底对着Excel发愁。老板问“… · 2026/9/27 13:01:44
Codex + 魔珐星云:政务大厅具身咨询数字人落地配置与验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 13:01:44
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01