|
|
||
|---|---|---|
| config | ||
| handlers | ||
| models | ||
| services | ||
| static | ||
| utils | ||
| .gitignore | ||
| README.md | ||
| deploy.sh | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
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/
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}:下载 ExcelPOST /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