Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AuthDL

一个用 Go 编写的单二进制下载网关,提供验证码校验与七牛 CDN 时间戳防盗链签名。

依赖

核心依赖如下:

  • github.com/julienschmidt/httprouter:高性能路由分发。
  • go.uber.org/zap:低开销结构化日志。
  • github.com/goccy/go-json:高性能 JSON 编解码。
  • github.com/mojocn/base64Captcha:验证码生成与内存存储。
  • github.com/qiniu/go-sdk/v7:七牛 CDN 时间戳防盗链签名。

服务内部将配置快照存于 atomic.Pointer,请求读路径无锁,配置热重载通过 SIGHUP 完成。

快速开始

配置文件:/app/config.json

{
  "baseURL": "http://a.com/",
  "encryptKey": "xxxx",
  "deadline": 60,
  "enableCaptcha": true
}
docker run --rm --name authdl \
  -p 8080:8080 \
  -v ./config.json:/app/config.json \
  qvgz/authdl

命令

# 查看版本
./authdl version

# 检查配置
./authdl check

# 热重载配置(向运行进程发送 SIGHUP)
./authdl reload

接口

  • GET /healthz:健康检查。

注意事项

验证码默认使用内存存储,/api/captcha 建议在反向代理层做限流,避免高频请求导致内存压力。

# nginx 示例
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;

location /api/captcha {
    limit_req zone=one burst=10 nodelay;
    proxy_pass http://127.0.0.1:8080;
}

About

一个用 Go 语言编写的轻量级单二进制下载网关。 具有验证码验证、七牛 CDN 时间戳防盗链功能,以及零依赖部署。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages