qr-scanner/README.md

1.9 KiB
Raw Blame History

二维码批量识别工具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