使用 Syncthing API 监听 NFS 目录同步并自动转换 Nikon RAW 文件
在之前一篇 尼康Zf的Raw文件在immich以及MT Photos上的问题临时解决方案 中,我试着使用 inotify来监控目录的变化,可惜忽略了目录是NFS挂载的,然后就没有成功监听到文件的变化。幸好syncthing有api可以使用,不过我理想中的方案是希望同步完成后推送通知,然后我执行获取jpg的脚本,可惜目前只能主动去调用api,监听目录的状态,于是修改了下脚本,其中需要额外安装jq,来解析json,API_KEY可以在操作-设置-常规下看到API密钥,目录ID的话在文件夹下可以看到文件夹ID,修改后的脚本如下: #!/bin/bash # 源目录和目标目录 SOURCE_DIR="/mnt/nfs_share/NikonRaw" TARGET_BASE_DIR="/mnt/nfs_share/NikonJpg" # 监听 URL 和配置 SYNC_URL="http://你的syncthing ip+端口/rest/events" API_KEY="你的APIKEY" SINCE_FILE="/root/syncthing_since.txt" LOG_FILE="/root/listen_syncthing.log" FOLDER_ID="你要监听的目录ID" # 读取上次的 SINCE 值 if [ -f "$SINCE_FILE" ]; then SINCE=$(cat "$SINCE_FILE") else SINCE=1055 fi SYNCED_FILES=() log() { echo "$(date '+%Y-%m-%d %H:%M:%S') $1" | tee -a "$LOG_FILE" } debug_log() { echo "[DEBUG] $(date '+%Y-%m-%d %H:%M:%S') $1" | tee -a "$LOG_FILE" } # 转换函数 convert_to_jpg(...