图片二维码扫描工具
Go to file
fuzhongyun b11cbad5b2 feat: add Linux & macOS build 2026-03-02 14:50:33 +08:00
config feat: 增加win打包 2026-03-02 13:40:24 +08:00
handlers first commit 2026-02-28 18:01:53 +08:00
models first commit 2026-02-28 18:01:53 +08:00
services first commit 2026-02-28 18:01:53 +08:00
static fix: 调整UI展示 2026-03-02 14:19:11 +08:00
utils first commit 2026-02-28 18:01:53 +08:00
.gitignore feat: 增加win打包 2026-03-02 13:40:24 +08:00
README.md feat: 增加win打包 2026-03-02 13:40:24 +08:00
deploy.sh feat: add Linux & macOS build 2026-03-02 14:50:33 +08:00
go.mod first commit 2026-02-28 18:01:53 +08:00
go.sum first commit 2026-02-28 18:01:53 +08:00
main.go feat: 增加win打包 2026-03-02 13:40:24 +08:00

README.md

二维码批量识别工具qr-scanner

一个轻量级的二维码批量识别工具:上传 ZIP 或图片,批量识别二维码内容,实时显示进度,并导出 Excel 报告。

功能

  • 上传 ZIP自动解压并提取图片
  • 上传单张/多张图片
  • QR Code 识别(单图多码输出多条内容)
  • 进度查询与 SSE 实时推送
  • Excel 导出(图片相对路径、识别内容、状态、错误信息、处理时间)

运行

环境变量:

  • QR_SCANNER_PORT:端口(默认 8001
  • QR_SCANNER_TEMP_DIR:临时目录(默认 /tmp/qr-scanner
  • QR_SCANNER_RETENTION_MINUTES:结果保留分钟数(默认 30
  • QR_SCANNER_DEFAULT_WORKERS:默认并发(默认 4
  • QR_SCANNER_DEFAULT_TIMEOUT_S:默认单张超时秒(默认 30
  • QR_SCANNER_DEBUG_DELAY_MS:调试延时毫秒(默认 0每处理一张额外 sleep

启动服务:

go run .

浏览器打开:

  • http://localhost:8001/

APIv1.0

  • POST /api/uploadmultipart/form-data字段 files(可多文件)
  • POST /api/scan{"taskID":"...","concurrency":4,"timeout":30}:推送、处理任务
  • GET /api/progress/{taskID}:查询进度
  • GET /api/progress/{taskID}/streamSSE 推送进度
  • GET /api/results/{taskID}:查询结果
  • GET /api/export/{taskID}:下载 Excel
  • POST /api/cancel/{taskID}:取消任务

Docker

构建镜像(默认从 docker.io 拉取基础镜像):

docker build -t qr-scanner:local .

国内网络可切换基础镜像仓库(示例):

docker build --build-arg BASE_IMAGE_REGISTRY=docker.m.daocloud.io -t qr-scanner:local .

运行:

docker run -d --name qr-scanner -p 8080:8080 qr-scanner:local
docker logs -f --tail=200 qr-scanner

部署脚本

脚本路径:deploy/deploy.sh

示例:

REPO_URL=git@github.com:xxx/qr-scanner.git BRANCH=main HOST_PORT=8080 ./deploy/deploy.sh