拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Gopeed 如何用下载目录白名单限制任务只能保存到指定目录?

Gopeed 如何用下载目录白名单限制任务只能保存到指定目录【免费下载链接】gopeedA fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.项目地址: https://gitcode.com/GitHub_Trending/go/gopeed如果你以 Web/API 服务的形式运行 Gopeedcmd/web入口客户端或调用方在创建任务时可以自行指定保存目录。whiteDownloadDirs配置就是用来收口这件事的一旦配置了非空的白名单任何新任务的保存路径只要不在白名单内创建任务就会直接失败返回错误download directory is not in white list。下面是基于源码核对的配置方法和验证方式。白名单的判定逻辑校验发生在任务创建路径的 initDownloadPathpkg/download/downloader.go中保存路径会先经过占位符替换代码注释给出的示例为%year%、%month%、%day%、%date%替换后的路径才拿去匹配白名单白名单非空时用 Go 的filepath.Match逐条匹配条目本身可作为带通配符的模式例如/data/downloads/*只要没有任何一条匹配initOptions返回错误任务创建失败注意如果创建任务时没有显式指定路径会回落到全局下载目录DownloadDir这个默认目录同样要过白名单否则任务照样建不起来。也就是说白名单同时管住了“显式指定目录”和“未指定、走默认目录”两条路径。三种配置方式配置项在 StartConfigpkg/rest/model/server.goJSON 字段whiteDownloadDirs中进入下载引擎cmd/web服务通过 main.go 把解析结果传入。flags.go 定义了三种来源1. 命令行参数-white-download-dirs多个目录用英文逗号分隔两侧空白会被自动去除- -white-download-dirs /data/downloads,/data/media2. 配置文件默认读取./config.json可用-config指定其他路径数组写法{ whiteDownloadDirs: [/data/downloads, /data/media] }3. 环境变量loadEnvVars按字段 JSON tag 派生出环境变量名并支持逗号分隔多个值GOPEED_WHITEDOWNLOADDIRS/data/downloads,/data/media优先级parse()的加载顺序是配置文件 → 环境变量 → 命令行参数覆盖 → 默认值且只有显式传入的命令行参数才参与覆盖。实际优先级为命令行参数 环境变量 配置文件。验证白名单是否生效启动服务带白名单参数后分别用两种方式创建任务指定一个白名单内的保存目录创建任务任务应正常创建并开始下载指定一个白名单外的目录创建任务创建应直接失败错误信息为download directory is not in white list。第二条能稳定复现该错误即说明白名单已生效。downloader_test.go 中的用例如WhiteDownloadDirs: []string{./downloads}和 flags_test.go 中对三种来源的解析测试都可以作为对照。边界与注意事项白名单匹配的是整个保存路径按filepath.Match规则执行因此要放行整个目录树时需要用通配符模式如/data/downloads/*而不是只写目录名——写死目录名只能精确命中该路径。校验只发生在任务创建时不会周期性重查已有任务的目录目录在运行期被移动或删除不属于该配置的职责范围。若你的默认下载目录本身带有%date%之类的占位符请确保替换后的实际路径落在白名单模式下否则“未指定目录”的任务也会创建失败。该能力挂在 Web/API 服务入口cmd/web及 pkg/rest/server.go 的StartConfig上属于服务部署侧的收紧手段而不是桌面客户端的设置项。【免费下载链接】gopeedA fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.项目地址: https://gitcode.com/GitHub_Trending/go/gopeed创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门