Install
openclaw skills install @lanqeur/onedrive-photo-batchOneDrive 照片批处理与索引技能。用于对 OneDrive 照片做按名称/日期/大小/格式/相册筛选、批量 OCR/多模态识别、full 全量索引、哈希增量跳过、语义检索、移动/上传/删除/恢复与回收站治理。用户提到 OneDrive 批量识别、照片索引、相册级模型策略、限速并发、删除恢复、15天回收站清理时触发。
openclaw skills install @lanqeur/onedrive-photo-batch使用 scripts/onedrive_photo_batch.py 执行 OneDrive 照片批处理。
保持“云端为主、临时落地、索引持久化”的原则:仅在处理时临时下载,识别后立即删除临时文件;删除云端照片时(非 hard)保存回收副本到 tmp_photo/。
full 时,每张照片完成识别并写入索引后,立即删除本地临时文件。--hard,否则必须写入本地回收站 tmp_photo/。logical_deleted=1),不物理清空索引主体。scripts/onedrive_photo_batch.pyreferences/config.example.jsonmsal 等 Python 包,必须在已安装依赖的虚拟环境中运行。python3 直接执行(可能报 缺少依赖 msal)。/root/.openclaw/workspace/tmp/onedrive-demo-venv/bin/python示例:
/root/.openclaw/workspace/tmp/onedrive-demo-venv/bin/python \
/root/.openclaw/workspace/skills/onedrive-photo-batch/scripts/onedrive_photo_batch.py \
--config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json search --limit 1
复制配置模板并填写真实值,例如:
cp /root/.openclaw/workspace/skills/onedrive-photo-batch/references/config.example.json /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
search --name "invoice" --name-mode fuzzy --formats jpg,png --limit 20
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
full --parallel 2 --max-download-kbps 2048 --batch nightly_full
语义检索:
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
search --semantic-query "带香港理工大学招聘信息的海报" --limit 10
关键词精确检索(命中 OCR/summary 原文,适合“必须包含某词”):
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
search --keyword "产品经理" --keyword-mode exact --keyword-field all --limit 20
软删除(默认,进入 tmp_photo/):
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
delete --name "old" --name-mode fuzzy --limit 5
硬删除(不进入回收站):
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
delete --name "old" --hard --limit 5
恢复(15天内):
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
restore --limit 10
清空回收站:
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
trash-empty
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
move --album "/Pictures/Inbox" --album-mode exact --target-album-path "/Pictures/Archive" --limit 20
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
upload --target-album-path "/Pictures/Inbox" /path/a.jpg /path/b.png
python3 scripts/onedrive_photo_batch.py --config /root/.openclaw/workspace/tmp/onedrive_photo_batch/config.json \
export --format csv --out /root/.openclaw/workspace/tmp/onedrive_photo_batch/export.csv
mode.read_only=true,会屏蔽 delete/restore/trash-empty/move/upload。mode.read_only=false,并把 auth.scopes 升级到 Files.ReadWrite。--parallel 与 --max-download-kbps 控制负载。performance):
api_retry:下载/API 调用重试次数backoff_sec:重试退避基数秒download_timeout_sec:下载超时时间(秒)ocr.default_interval_sec 与 ocr.model_intervals_sec 控制。ocr.album_overrides 和 ocr.batch_overrides 定义。ok=false, error.code/message)。