# 二维码批量识别工具(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) 启动服务: ```bash go run . ``` 浏览器打开: - `http://localhost:8001/` ## API(v1.0) - `POST /api/upload`:multipart/form-data,字段 `files`(可多文件) - `POST /api/scan`:`{"taskID":"...","concurrency":4,"timeout":30}`:推送、处理任务 - `GET /api/progress/{taskID}`:查询进度 - `GET /api/progress/{taskID}/stream`:SSE 推送进度 - `GET /api/results/{taskID}`:查询结果 - `GET /api/export/{taskID}`:下载 Excel - `POST /api/cancel/{taskID}`:取消任务 ## Docker 构建镜像(默认从 docker.io 拉取基础镜像): ```bash docker build -t qr-scanner:local . ``` 国内网络可切换基础镜像仓库(示例): ```bash docker build --build-arg BASE_IMAGE_REGISTRY=docker.m.daocloud.io -t qr-scanner:local . ``` 运行: ```bash docker run -d --name qr-scanner -p 8080:8080 qr-scanner:local docker logs -f --tail=200 qr-scanner ``` ## 部署脚本 脚本路径:`deploy/deploy.sh` 示例: ```bash REPO_URL=git@github.com:xxx/qr-scanner.git BRANCH=main HOST_PORT=8080 ./deploy/deploy.sh ```