README file from
Github易同步(EasySync)
为了让所有朋友都能轻松解决 Obsidian 同步问题,我做了这个插件:初次部署只要 2 分钟。如果你还在用 Remotely Save + OneDrive,一定要试试 EasySync。
EasySync 是新一代基于 OneDrive 的双向同步插件——仅需登录 OneDrive 账号,就能在电脑、手机和平板之间同步仓库;冲突可控,移动端也流畅,笔记和设置同步各有独立开关。支持 Windows、macOS、Linux、iOS 和 Android。
| 特点 | 说明 |
|---|---|
| 🔍 不靠时间判断文件,靠内容 | 给文件内容算 SHA-256 哈希指纹,只比对内容是否真的变了——旧文件拷回来、系统时间跳了,都骗不到它,几乎不会误覆盖你的笔记。 |
| ⚖️ 冲突不替你乱选 | 两台设备都改过的笔记,不挑一个覆盖另一个:两个版本并排展示、标出差异,由你决定留哪个。 |
| 👀 同步情况一目了然 | 同步失败的、冲突待处理的、太大被跳过的文件,全部列在侧栏里,不是一条几秒就消失的提示。 |
| 🎛️ 想同步什么,自己选 | 笔记和附件默认同步;编辑器设置、外观、主题、快捷键、核心插件、社区插件、插件数据,每一项都有独立开关。 |
| 🛡️ 一直在悄悄保护你的数据 | 上传前重算文件哈希,确认内容没有中途变化;下载的文件覆盖本地前先复核;中断后从已完成的进度继续;云端删除默认不动本地文件,先转给你确认。 |
| ☁️ 数据只在你自己的 OneDrive 里 | 直连 Microsoft 官方接口,不经过第三方服务器;没有遥测和广告,源码公开在 GitHub。 |
目录
1. 安装与首次配置
1.1 安装插件
在 Obsidian 中打开:
设置 → 第三方插件 → 浏览 → 搜索 EasySync → 安装并启用
需要 Obsidian 1.11.4 或更高版本。
也可以从 GitHub Releases 手动安装:下载 main.js、manifest.json 和 styles.css,放入:
<你的仓库>/.obsidian/plugins/easy-sync/
然后在 Obsidian 中启用插件。
1.2 准备本地仓库
- 首次使用前,为重要仓库保留一份独立备份;
- 仓库放在普通本地文件夹,只让 EasySync 管理这个仓库的同步;
- 不要把仓库建在 OneDrive、iCloud 等云盘上,也不要使用其他同步插件/工具,否则会引起冲突。
所有设备使用相同的仓库名:EasySync 按仓库名区分同步空间,名称不同就是两个独立的同步空间。
1.3 登录 OneDrive
打开:
Obsidian 设置 → EasySync → 登录 OneDrive
登录会拉起系统浏览器完成 Microsoft 授权;移动端在授权完成后按页面提示返回 Obsidian 即可。
1.4 完成第一次同步
先在内容最完整的设备上点击“立即同步”:EasySync 会先展示同步计划,确认前不会上传、覆盖、移动或删除你的文件。确认并等这轮完成后,再去其他设备同步。
如果新设备还没有内容:
- 创建一个同名空仓库;
- 安装并登录 EasySync;
- 点击“立即同步”;
- 等待云端文件下载完成。
云端已有同名仓库的同步状态时,新设备会提示加入;从旧版升级则可能先显示同步方案升级——请先把其他设备更新到当前版本,再按提示确认。
首次同步要扫描全部文件、计算指纹、建立共同基线,文件多或网络慢时会明显久于之后的同步。之后的同步主要核对增量变化,大文件分片上传,移动端下载后先验证再替换本地文件。
2. 数据与隐私
2.1 云端文件在哪里
EasySync 把每个仓库分别存放在 OneDrive 的应用目录中:
应用/EasySync/vaults/<仓库名>/files/<你的文件路径>
例如:
应用/EasySync/vaults/我的笔记/files/项目/计划.md
files 目录就是仓库里参与同步的文件,可在 OneDrive 网页版或客户端查看。同级的 .easy-sync 目录保存同步状态,请不要手动修改、移动或删除其中的文件。
2.2 数据如何传输
同步文件保存在你自己的 OneDrive 账户中。EasySync 直接连接 Microsoft 登录和 Microsoft Graph,不使用第三方中转服务器,同步路径限制在应用目录 应用/EasySync/ 内。
当前 Microsoft 授权包括:
Files.ReadWrite.AppFolder:读写 EasySync 的 OneDrive 应用目录;Files.Read:完成文件读取和下载;- 基本身份与离线登录权限:确认当前账号并维持登录状态。
没有遥测、广告或行为分析;诊断日志保存在本地插件目录,诊断报告只在你主动生成时才写入仓库。源码公开在 GitHub,供用户审查。
2.3 回收站与备份边界
被删除的云端文件,可按你的 OneDrive 账户策略从回收站恢复。但回收站和同步记录都不能替代独立备份——重要内容请定期备份到同步工具管理不到的位置。
3. 按需配置与同步范围
- 仓库中的普通文件与文件夹——笔记、图片、音频、PDF、附件等——默认双向同步,无需额外配置;
- 除此之外的 Obsidian 内容默认不同步,可在设置页“同步范围”中按需开启。
其他选项可以按需要开启:
| 设置 | 建议 |
|---|---|
| 同步排除 | 只影响当前设备;所选文件夹不会上传或下载,现有文件不会仅因排除而被删除 |
| 同步范围 | 编辑器设置、外观、主题与代码片段、快捷键、书签和核心插件等内容均可独立控制 |
| 社区插件 | 插件文件可逐项同步;各插件的 data.json 由“社区插件数据”单独控制 |
| 社区插件数据 | 各插件的 data.json 可逐项选择;该功能仍属实验性,开启前请备份各设备上的插件设置 |
| EasySync 自同步 | 默认关闭;需要把 EasySync 更新同步到其他设备时再开启 |
| 自动同步 | “定时同步”和“修改后触发同步”可分别配置;关闭后仍可手动点击“立即同步” |
| 自动处理 | “合并不重叠的文本修改”默认开启;“将远端删除同步到本地”默认关闭,无法证明安全时仍会转为冲突或待处理 |
| 诊断日志 | 日常可以关闭;排查同步问题时开启并生成诊断报告 |
| 通知弹窗 | 默认显示全部;可改为“仅重要”或“关闭”;登录过期等关键提醒始终显示 |
设置保存在当前设备的插件数据中,并按设备独立生效(如同步排除、通知弹窗等级);不会自动改变其他设备或仓库的配置。
3.1 会同步的 Obsidian 配置(白名单)
开启对应选项后,以下 .obsidian 中的对象会同步:
- 编辑器设置(
app.json) - 外观设置(
appearance.json) - 主题(
themes/)与代码片段(snippets/) - 快捷键(
hotkeys.json) - 核心插件启用状态(
core-plugins.json) - 书签(
bookmarks.json) - 社区插件:本设备已参与同步的插件的三个文件(
main.js、manifest.json、styles.css);插件数据(data.json)需在“社区插件数据”中另行选中(实验性) - EasySync 自身:开启“EasySync 自同步”后,插件文件会同步到其他设备
社区插件的启用状态不属于同步范围:各设备可以分别启用或停用插件,互不影响。
注意:即使开启了“自动合并不重叠的文本修改”,.obsidian 中的文件也不会自动合并——那里的冲突始终由你选择保留本地或云端。
3.2 不参与同步的内容
.obsidian白名单之外的所有文件——插件在其插件目录中生成的配置、缓存、会话记录等,以及配置目录根级的其他文件——默认只留在当前设备;- 点开头的隐藏文件夹(如
.git、.trash)默认不参与普通同步;.trash/、.DS_Store、Thumbs.db默认排除; - EasySync 自身的状态、缓存、日志与恢复副本永远不参与同步;
- “同步排除”可以把已参与同步的普通文件夹排除在本设备之外:只影响当前设备,不会删除本机或云端的任何文件。
需要跨设备共享的内容,请放在普通可见文件夹中。
4. 冲突如何处理
EasySync 记录每个文件上一次成功同步的内容作为基线,用内容哈希分别比较本地和远端各发生了什么变化。
以下情况可以自动处理:
- 只有一端修改;
- 两端内容实际完全一致;
- 两端修改同一份文本,但修改位置互不重叠;
- 文件或文件夹只发生改名、移动,内容未变化且身份能够确认;
- 远端已删除、本地自共同基线后未修改,并且你已授权相应处理方式。
以下情况通常需要人工决定或重新核对:
- 两端修改了同一行或相互重叠的内容;
- 没有可靠的共同版本;
- 图片、PDF、压缩包等二进制文件同时变化;
- Obsidian 管理的配置文件在两端发生冲突;
- 文件改名或移动的同时内容也发生变化、目标位置已被占用,或无法唯一确认原文件身份;
- 文件在计划生成后又被继续编辑,或当前账号、仓库范围、远端版本已经变化。
EasySync 不会因为某个文件“看起来更新”就直接覆盖另一端。
5. 从其他方式迁移
如果你原本使用其他同步方式,可以按下面的步骤迁移。迁移期间请记住三件事:保留原仓库和独立备份;不要让两种同步工具同时管理同一个本地仓库;启动首次同步后,如果计划里出现预期之外的大量上传、下载或冲突,先取消,检查仓库名、目录层级、同步范围和加密状态再重来。已经放在 EasySync 云端目录里、路径和内容与本地完全一致的文件,首次同步只会建立共同基线,不会重新上传。
5.1 从 OneDrive 应用迁移
如果仓库直接位于 OneDrive 同步目录:先确认 OneDrive 已完成同步、所有文件都已完整下载(而不是云端占位符);关闭 Obsidian,暂停 OneDrive,把整个仓库复制到不受 OneDrive 管理的普通本地目录,并在 Obsidian 中打开这个副本。
安装并启用 EasySync,登录原仓库所在的 OneDrive 账号,但先不要开始同步;通过 OneDrive 网页版,把原仓库根目录下的全部内容复制到 应用/EasySync/vaults/<你的仓库名>/files/——直接放入 files,不要再多套一层仓库名。最后启动首次同步;确认结果正常后,再处理原 OneDrive 目录中的仓库。
5.2 从 Remotely Save 插件迁移
先完成最后一次同步并确认成功,然后停用所有设备上的 Remotely Save。
如果没有启用远端加密,可以通过 OneDrive 网页版,把 应用/remotely-save/<你的仓库名>/ 中的仓库内容复制到 应用/EasySync/vaults/<你的仓库名>/files/;直接复制仓库内容,不要多套一层仓库名,也不要复制 Remotely Save 的控制文件。如果自定义过远端目录,以实际目录为准。
如果启用了远端加密,需要先用 Remotely Save 把仓库完整还原到本地,再由 EasySync 执行首次上传。
5.3 从 iOS 的 iCloud 迁移
不要先关闭 iCloud。请在“文件”App 中确认 iCloud 云盘/Obsidian/<你的仓库名>/ 已完整下载;仍保存在云端的内容可长按并选择“保留下载”。然后在 Obsidian 中创建一个名称相同、但不存储到 iCloud 的本地仓库,关闭 Obsidian,将原仓库根目录下的全部内容复制到 我的 iPhone/Obsidian/<你的仓库名>/ 或 我的 iPad/Obsidian/<你的仓库名>/ 中的新仓库。
重新打开 Obsidian,确认笔记、附件和文件夹完整后,再安装 EasySync 并执行首次同步。iCloud 与 EasySync 使用的 OneDrive 是两个独立云端,因此仍需完成一次首次上传;原 iCloud 仓库应保留到 EasySync 上传完成且再次同步结果稳定后,再决定是否删除。
6. 使用边界
EasySync 是跨设备文件同步工具,不是多人实时协作系统。
- 不要在多台设备上同时编辑同一个文件;
- 不要让 EasySync 与其他同步工具同时管理同一个本地仓库;
- 同步不能替代独立备份,重要内容请定期备份。
7. 常见问题
7.1 可以同步多个仓库吗?
可以。数量没有限制,取决于你的 OneDrive 存储空间。同一账号下,仓库名相同的设备同步的是同一个仓库;仓库名不同,就是不同的同步空间,互不影响。
7.2 数据安全吗?有端到端加密吗?
EasySync 不提供端到端加密:云端副本是原始文件,保存在你自己的 OneDrive 里,可以随时查看(见第 2 节)。
数据安全来自三方面:文件只保存在你自己的 OneDrive 账号,直连 Microsoft,不经过第三方服务器;删除等敏感操作有确认与保护机制,误删的文件可按账户策略从 OneDrive 回收站恢复;OneDrive 账号自身的登录保护和两步验证同样保护这些文件,建议为 Microsoft 账号开启两步验证。
如果你需要“连云服务商也无法读取内容”的端到端加密,EasySync 目前不提供。
7.3 为什么不支持 WebDAV、S3、Google Drive 等其他云端?
EasySync 目前只支持 OneDrive。增量核对、分片上传、变更检测都基于 OneDrive 官方接口的机制实现,不是换个服务器地址就能支持的。如果你正在使用其他同步方案,第 5 节的迁移指南覆盖了从 OneDrive 目录、Remotely Save 和 iCloud 转入的路径。
7.4 EasySync 收费吗?
不收费。EasySync 按 MIT License 开源,全部功能免费。
7.5 为什么上传很快,下载却很慢?
两者线路不同:上传直接进入微软的存储服务,下载则从微软的文件分发站取回内容——这段线路的质量由网络环境决定,插件无法控制。蜂窝弱信号、晚间高峰或运营商线路不佳时,下载可能只有几十 KB/s 甚至间歇失败,并非插件故障;中断会从断点继续,不会从头重来。长期很慢时,按顺序尝试:
- 换 DNS:手机在 Wi-Fi 设置里改(iPhone 为“配置 DNS”,安卓为“私有 DNS”),电脑在网络设置或路由器里改。国内推荐 223.5.5.5(阿里)或 119.29.29.29(腾讯),海外推荐 1.1.1.1 或 8.8.8.8——默认 DNS 解析不到分发站时,换公共 DNS 常常就能解决。
- 检查代理与防火墙:确认规则没有漏掉或拦下微软下载域名
my.microsoftpersonalcontent.com;某些网络下让它走代理反而更稳。 - 换网络或错峰再同步:换个 Wi-Fi 或避开高峰,常常自己就恢复了。
- (电脑端)修改 hosts:把
my.microsoftpersonalcontent.com指向可达的 IP。有门槛、可能随微软调整失效,仅作最后手段。
仍无改善,请按第 8 节反馈并附上诊断报告,便于分清线路问题与插件问题。
8. 许可与支持
EasySync 采用 MIT License 开源。
- 遇到问题:先在 EasySync 设置中生成“诊断报告”,提交问题时附上完整报告;反馈提交到 GitHub Issues。
- 产品交流:小红书搜索 焦应行 🔍