qr-scanner/README.md

74 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 二维码批量识别工具qr-scanner
一个轻量级的二维码批量识别工具:上传 ZIP 或图片,批量识别二维码内容,实时显示进度,并导出 Excel 报告。
## 功能
- 上传 ZIP自动解压并提取图片
- 上传单张/多张图片
- QR Code 识别(单图多码输出多条内容)
- 进度查询与 SSE 实时推送
- Excel 导出(图片相对路径、识别内容、状态、错误信息、处理时间)
## 运行
环境变量:
- `QR_SCANNER_PORT`:端口(默认 8080
- `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:8080/`
## APIv1.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
```