WebDAV nas

approvedunreviewed

by Hadesr

轻量 WebDAV 同步插件:只上传 / 只下载 / 双向,配合"只传变动 / 全部对齐";删除跟随方向,自动同步不打扰,进度只走通知。桌面与移动端通用。

↓ 56 downloadsUpdated 12d agoMIT

WebDAV nas

一个轻量的 Obsidian WebDAV 同步插件 —— 桌面(Windows / macOS / Linux)与移动端(iOS / iPadOS / Android)通用。

author version platform

基于 Obsidian 官方 requestUrl,不依赖任何第三方库。像连你家 NAS 一样直接同步笔记:不经过中转服务器,数据只在你自己的设备与存储之间流动。


目录


特性

能力说明
三种方向只上传 / 只下载 / 双向
两种传送方式只传变动(增量,省时间) / 全部对齐(全量,强制一致)
删除跟随方向没有孤立的"删除开关",删除行为由方向决定
自动同步本地改动约 10 秒后自动跑;可选定时轮询(可关)
无变化静默没活干时一声不吭,绝不打扰写作
右上角通知进度只走通知,不弹框打断
预览动手前先看清要传/删哪些文件
防误删删除占比超过阈值自动中止(阈值可调)
诊断连接一键生成报告(实际 URL / 原始返回 / 三方数值),换服务器排错利器
地址/目录自动去重地址里已含文件夹名时不再重复拼接(群晖常见坑)
密码密文保存不以明文落盘,可随配置同步,换设备免手输
桌面 + 移动isDesktopOnly: false,手机端同样可用

安装

方式一:手动拷贝(推荐,零依赖)

  1. 下载本项目的三个文件:main.js、manifest.json、styles.css
  2. 放进你的库:
<你的库>/.obsidian/plugins/webdav-nas/
├── main.js
├── manifest.json
└── styles.css
  1. 打开 Obsidian → 设置 → 第三方插件 → 刷新 → 启用 WebDAV nas

方式二:BRAT(适合手机端 / 自动更新)

  1. 先从社区插件市场安装 BRAT
  2. BRAT 设置 → Add a beta plugin → 填入本仓库地址
  3. 自动安装并启用

iOS / iPadOS 提示:系统「文件」App 没有"显示隐藏文件"开关,.obsidian 是隐藏目录。推荐用 BRAT,或用电脑操作(macOS:⌘⇧G 跳转到 iCloud 里 Obsidian 的容器目录)。


配置

设置 → WebDAV nas:

字段说明示例
服务器地址WebDAV 的入口地址https://nas.example.com:5006/WebDAV
用户名WebDAV 账号your-name
密码WebDAV 密码(以密文保存)••••••
远端目录要同步到的子目录,留空 = 地址指向的根知识库
同步方向只下载 / 只上传 / 双向只上传
「立即同步」的方式手动点同步时按哪种方式传全部对齐
删除保护阈值(%)一次同步里删除占比超此值就中止30
本地改动后自动同步改动约 10 秒后自动跑一次开
定时轮询间隔(分钟)额外定时兜底;0 = 关闭0
同步 .obsidian 配置目录是否连带同步插件/主题配置(默认关)关
排除规则逗号分隔的目录名或路径前缀.trash, 私人

同步方向 × 传送方式

方向决定数据往哪流(删除也跟着它);传送方式决定"只动变动的"还是"整体对齐"。两者组合出 6 种清晰行为:

只传变动(更新)全部对齐(全量)
只下载只把云端改过的拉到本地
(本地改写的不会被覆盖)
云端全部覆盖本地
(本地改乱了 → 一键还原)
只上传只把本地改过的推上去本地全部刷新到云端
(缺的新增、有的更新)
双向两边各自增量合并每个文件取较新的一方

删除行为(跟随方向)

方向云端删了本地删了
只下载删本地从云端补回
只上传从本地补传删云端
双向删本地删云端

自动同步永远用「只传变动」——只增不覆盖,绝不打扰你正在写的内容。 **手动点「立即同步」**用设置里的方式(默认「全部对齐」)。


常见场景怎么操作

你的情况怎么设置
主电脑写作,同步到云端方向【只上传】,自动同步会把改动推上去
辅助设备只读,不想动云端方向【只下载】+ 方式【只传变动】
辅助设备改乱了,想恢复云端版本点「立即同步」(默认全部对齐)或「强制对齐」
云端被清空了,想从本地恢复方向【只上传】→ 点「立即同步」,会补传回去
换了新设备,要全量拉取方向【只下载】→ 点「强制对齐」
只想先看看会动什么命令面板 →「预览(不修改文件)」

支持的服务器与地址填法

规则:插件把「地址 + 远端目录」拼起来当根,所以别填重了(插件会自动识别并去重,但规范填法更清晰)。

服务地址远端目录实际访问
飞牛 fnOShttps://nas.example.com:5006/WebDAV知识库.../WebDAV/知识库 ✅
群晖 DSMhttps://nas.example.com:5006/WebDAVobsidian.../WebDAV/obsidian ✅
Nextcloudhttps://cloud.example.com/remote.php/dav/files/<用户名>obsidian.../files/<用户名>/obsidian ✅
通用地址填到你想同步的父目录填子目录名(或留空)—

⚠️ 中文目录名的坑:部分服务器/反向代理不解码 URL 中的 %XX 中文路径(例如群晖某些配置),会导致 404。若遇到,把服务器上的文件夹改成英文名即可。 插件在 404/409 时会直接提示这一点。


关于密码

密码以密文保存在 data.json 里(不是明文),因此你可以把配置文件一起同步到云端,换设备后直接能用,无需重新输入。

⚠️ 安全边界:解密密钥内置在插件源码中,所以这属于「防明文暴露」级别,不是密码学意义上的强加密。 它能做到:明文密码不会出现在云端文件列表/日志里;密钥或密文被改动时能被检测出来。 它做不到:防住同时拿到「插件源码 + data.json」的人,也不能防止他人复制本插件。

如果你希望更强的保护,建议:不要把 data.json 放进不可信的同步盘,或使用独立的 WebDAV 子账号(最小权限)。


排错

现象原因 / 处理
401用户名/密码不对(注意大小写、全角字符、末尾空格)
404 / 409「远端目录」拼错、填重,或服务器不解码中文路径(改用英文目录名)
424 / 207 异常反向代理配置问题(检查 proxy_pass 尾部斜杠、放行 PROPFIND 等方法)
提示"地址里已包含 XX,已自动忽略"地址与远端目录填重了,插件已自动处理,可无视
明明改了却不同步跑一次「诊断」看【同步判定诊断】的 L/R/S 三方数值;必要时点「重置基线」
想看清到底发了什么请求设置 → 「诊断」,报告可一键复制
手机端看不到 .obsidianiOS 无"显示隐藏文件"开关;用 BRAT 安装,或用电脑操作

自建环境

本插件在以下自建环境实测通过:

  • 飞牛 fnOS + 内置 WebDAV(https://域名:5006/WebDAV)
  • 群晖 DSM + WebDAV Server 套件(建议英文目录名)
  • 通用 WebDAV(Nginx 反代亦可,注意放行 PROPFIND / PROPPATCH / MKCOL / COPY / MOVE / LOCK / UNLOCK)

许可

MIT License —— 详见 LICENSE。

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.