监控指定目录下的文件,利用 markitdown 工具将其自动转换为 Markdown 格式
105
这是一个自动化的文档转换服务。它通过监控指定的目录,利用 markitdown 将各种格式(如 PDF, Word, PPT 等)的文件自动转换为 Markdown 格式,并支持智能的文件防抖处理与结果归档。
该工具特别针对 NAS/NFS 等网络存储环境进行了优化,支持轮询(Polling)和实时监听(Inotify)双模式。
polling:主动轮询模式,完美兼容 NFS、SMB 等不支持系统通知的网络文件系统。inotify:实时监听模式,适用于本地磁盘,实现秒级响应。Swap/Done 目录,避免重复处理。Swap/Failed 目录,并7天自动清除。你可以在 docker-compose.yml 的 environment 部分配置以下参数:
| 变量名 | 默认值 | 说明 |
|---|---|---|
MONITOR_MODE | polling | 监控模式,可选 polling 或 inotify |
SCAN_INTERVAL | 5 | 轮询模式下的扫描频率(秒) |
CHECK_SIZE | 2 | 文件体积检测间隔(秒),用于判断文件是否仍在写入 |
在宿主机挂载的目录中,你需要确保结构如下:
Plaintext
/your/host/path/
├/app # 存放以转换的文件 *.md
├── /Swap # 存放待转换的文件
├───── /Done # 存放转换成功的文件
├───── /Failed # 存放转换失败的文件
└───── ...
当服务启动后,它会自动在 Swap 目录下创建 Done Failed 文件夹。
创建一个 docker-compose.yml 文件:
YAML
services:
markit-engine:
image: netvn/markitdown-auto:latest
container_name: MarkitEngine
environment:
- MONITOR_MODE=polling #默认为polling检测模式,支持NFS文件目录
#- MONITOR_MODE=inotify #如果不是NFS文件目录可使用inotify模式-去掉注释并同时注释掉polling模式
- SCAN_INTERVAL=5
- CHECK_SIZE=2
volumes:
- /your/host/path:/app
restart: unless-stopped
Bash
docker compose up -d
report.pdf)放入容器内 /app/Swap 目录。MONITOR_MODE 发现新文件。CHECK_SIZE 间隔检测文件大小是否变化,确保文件传输完毕。markitdown 进行转换,输出 .md 文件至 /app 目录。/app/Swap/Done,确保原件安全且不重复转换。/app/Swap/Failed,7天后会自动清理。MIT License
Content type
Image
Digest
sha256:47d02a022…
Size
337.2 MB
Last updated
5 months ago
docker pull netvn/markitdown-auto