README file from
Github易同步(EasySync)
EasySync 让你在电脑、手机和平板之间轻松同步 Obsidian 仓库。
-
安全可控:单边变化、内容一致和不重叠的文本修改可以自动处理;其余冲突由你比较后决定。
-
全程透明:同步状态、进度、历史和需要处理的项目都在独立侧栏中展示。
-
同步自由:编辑器设置、外观、主题、快捷键、书签、核心插件和社区插件等范围可分别控制,社区插件还可以逐项选择。
-
支持 Windows、macOS、Linux、iOS 和 Android;首次建立共同基线,后续主要增量核对新的变化,大文件使用分片上传。
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 时,不要把同一个 Obsidian 仓库直接放进 OneDrive、iCloud Drive、Dropbox、Syncthing 等其他同步工具管理的目录。
如果 EasySync 和另一个同步工具同时修改同一批文件,可能产生冲突副本、重复上传、删除回流或错误的同步判断。
建议:
- 把 Obsidian 仓库放在普通本地目录;
- 只让 EasySync 管理这个仓库的跨设备同步;
- 首次使用前为重要仓库保留一份独立备份。
1.3 登录 OneDrive
打开:
Obsidian 设置 → EasySync → 登录 OneDrive
完成 Microsoft 登录后,按页面提示返回 Obsidian。
1.4 在所有设备使用相同的仓库名
EasySync 根据仓库名区分云端同步空间。
例如,电脑上的仓库叫:
我的笔记
手机上也应创建或打开名为“我的笔记”的仓库。不同名称会被视为不同的同步空间。
1.5 完成第一次同步
建议先在内容最完整的设备上点击“立即同步”。EasySync 会先展示同步计划;确认前不会上传、覆盖、移动或删除笔记、附件和其他待同步文件。确认计划并等待同步完成后,再在其他设备上同步。
如果新设备还没有内容:
- 创建一个同名空仓库;
- 安装并登录 EasySync;
- 点击“立即同步”;
- 等待云端文件下载完成。
如果云端已经存在同名仓库的 EasySync 同步状态,新设备会提示加入已有同步状态;从旧版升级时,也可能先显示同步方案升级。请先将其他设备更新到当前版本,再按页面提示确认。
首次同步需要扫描、计算文件指纹并建立共同基线。文件较多或网络较慢时,耗时会明显长于后续同步。
2. 迁移
如果你原本使用其他同步方式,可以按以下步骤迁移到 EasySync。迁移完成前,请保留原仓库和独立备份,不要让两种同步工具同时管理同一个本地仓库;已经放入 EasySync 云端目录、并且与本地路径和内容完全一致的文件,首次同步只会建立共同基线,不会重新上传。如果出现预期之外的大量上传、下载或冲突,请先取消并检查仓库名、目录层级、同步范围和加密状态。
2.1 OneDrive 应用
如果仓库直接位于 OneDrive 同步目录,请先确认 OneDrive 已完成同步,并确保所有文件均已完整下载而不是云端占位符;然后关闭 Obsidian、暂停 OneDrive,将整个仓库复制到不受 OneDrive 管理的普通本地目录,并在 Obsidian 中打开这个本地副本。
安装并启用 EasySync,登录原仓库所在的 OneDrive 账号,但暂不开始同步;先通过 OneDrive 网页版,将原仓库根目录下的全部内容复制到 应用/EasySync/vaults/<你的仓库名>/files/,直接放入 files,不要再多套一层仓库名。随后启动首次同步,完成并确认结果正常后,再处理原 OneDrive 目录中的仓库。
2.2 Remotely Save 插件
请先完成最后一次同步并确认成功,然后停用所有设备上的 Remotely Save。如果没有启用远端加密,可以通过 OneDrive 网页版,将 应用/remotely-save/<你的仓库名>/ 中的仓库内容复制到 应用/EasySync/vaults/<你的仓库名>/files/;直接复制仓库内容,不要多套一层仓库名,也不要复制 Remotely Save 的控制文件。
如果自定义过远端目录,请以实际目录为准;如果启用了远端加密,则需要先使用 Remotely Save 将仓库完整还原到本地,再由 EasySync 执行首次上传。
2.3 iOS 的 iCloud
不要先关闭 iCloud。请在“文件”App 中确认 iCloud 云盘/Obsidian/<你的仓库名>/ 已完整下载;仍保存在云端的内容可长按并选择“保留下载”。然后在 Obsidian 中创建一个名称相同、但不存储到 iCloud 的本地仓库,关闭 Obsidian,将原仓库根目录下的全部内容复制到 我的 iPhone/Obsidian/<你的仓库名>/ 或 我的 iPad/Obsidian/<你的仓库名>/ 中的新仓库。
重新打开 Obsidian,确认笔记、附件和文件夹完整后,再安装 EasySync 并执行首次同步。iCloud 与 EasySync 使用的 OneDrive 是两个独立云端,因此仍需完成一次首次上传;原 iCloud 仓库应保留到 EasySync 上传完成且再次同步结果稳定后,再决定是否删除。
3. 推荐配置
EasySync 的基础同步无需额外配置:仓库中的笔记和附件默认参与同步。
其他选项可以按需要开启:
| 设置 | 建议 |
|---|---|
| 同步排除 | 只影响当前设备;所选文件夹不会上传或下载,现有文件不会仅因排除而被删除 |
| 同步范围 | 编辑器设置、外观、主题与代码片段、快捷键、书签和核心插件等内容均可独立控制 |
| 社区插件 | 插件文件和启用状态可以逐项控制;总范围开启后,本机后来安装的完整插件会自动加入本设备同步,已经明确关闭的项目不会自动重新开启 |
| 社区插件数据 | 各插件的 data.json 可以逐项控制;该功能仍属实验性,开启前请备份各设备上的插件设置 |
| EasySync 自同步 | 默认关闭;需要把 EasySync 更新同步到其他设备时再开启 |
| 自动同步 | “定时同步”和“修改后触发同步”可分别配置;关闭后仍可手动点击“立即同步” |
| 自动处理 | “合并不重叠的文本修改”默认开启;“将远端删除同步到本地”默认关闭,无法证明安全时仍会转为冲突或待处理 |
| 诊断日志 | 日常可以关闭;排查同步问题时开启并生成诊断报告 |
所有设置只影响当前仓库,不会自动改变其他仓库的配置。
4. OneDrive 中的数据与权限
4.1 云端文件在哪里
EasySync 把每个仓库分别存放在 OneDrive 的应用目录中:
应用/EasySync/vaults/<仓库名>/files/<你的文件路径>
例如:
应用/EasySync/vaults/我的笔记/files/项目/计划.md
files 目录对应仓库中参与同步的文件。你可以通过 OneDrive 网页版或客户端查看这些云端副本。
同级的 .easy-sync 目录保存同步状态,请不要手动修改、移动或删除其中的文件。
OneDrive 中的这些文件是 EasySync 管理的云端副本,不代表应该把本地 Obsidian 仓库直接移动到 OneDrive 同步目录。
4.2 数据如何传输
同步文件保存在你自己的 OneDrive 账户中。EasySync 直接连接 Microsoft 登录和 Microsoft Graph,不使用第三方中转服务器。
当前 Microsoft 授权包括:
Files.ReadWrite.AppFolder:读写 EasySync 的 OneDrive 应用目录;Files.Read:完成文件读取和下载;- 基本身份与离线登录权限:确认当前账号并维持登录状态。
EasySync 的同步路径限制在自己的应用目录:
应用/EasySync/
插件不包含遥测、广告或用户行为分析。诊断日志默认保存在本地插件目录;诊断报告只有在你主动生成时才会写入仓库。
源码公开在 GitHub,供用户审查。
4.3 回收站与备份边界
如果 OneDrive 中的文件被删除,可以根据你的 OneDrive 账户策略检查回收站。回收站和同步记录都不能替代独立备份;重要内容仍建议定期保存到不受 EasySync 或其他同步工具管理的位置。
5. EasySync 的核心能力
- 笔记与附件:双向同步 Markdown、图片、音频、PDF 和其他仓库文件,按内容哈希判断变化,不只依赖修改时间;
- 文件与文件夹:同步新建、改名、移动和删除;内容未变化且身份能够确认时,其他设备只调整名称或位置,不会重新传输文件内容;
- 首次同步与设备接入:首次执行前预览同步计划;新设备可以加入同名仓库的已有同步状态,已支持的旧版状态通过升级方案接入当前同步方式;
- 自动处理与冲突:自动处理单边变化、完全相同的内容和不重叠的文本修改;其余文本提供逐行差异,图片、PDF 等二进制文件展示两端信息并由用户决定;
- 中断恢复:上传、下载、删除或状态提交未完成时保留恢复记录,重开 Obsidian、断网、超时或响应丢失后先核对结果,再决定继续或等待处理;
- Obsidian 配置与插件:按需同步编辑器设置、外观、主题、代码片段、快捷键、书签、核心插件和社区插件,社区插件文件、启用状态与数据可以分别管理;
- 状态与诊断:在侧栏展示同步计划、进度、历史、冲突和待处理项目,支持连续处理多个决策,并可生成诊断报告;
- 大仓与大文件:首次建立共同基线,后续增量检查变化;大文件使用分片上传,移动端下载验证后再替换本地文件。
6. 冲突如何处理
EasySync 会记录文件上一次成功同步的内容,并分别判断本地和远端发生了什么变化。
以下情况可以自动处理:
- 只有一端修改;
- 两端内容实际完全一致;
- 两端修改同一份文本,但修改位置互不重叠;
- 文件或文件夹只发生改名、移动,内容未变化且身份能够确认;
- 远端已删除、本地自共同基线后未修改,并且你已授权相应处理方式。
以下情况通常需要人工决定或重新核对:
- 两端修改了同一行或相互重叠的内容;
- 没有可靠的共同版本;
- 图片、PDF、压缩包等二进制文件同时变化;
- Obsidian 管理的配置文件在两端发生冲突;
- 文件改名或移动的同时内容也发生变化、目标位置已被占用,或无法唯一确认原文件身份;
- 文件在计划生成后又被继续编辑,或当前账号、仓库范围、远端版本已经变化。
EasySync 不会因为某个文件“看起来更新”就直接覆盖另一端。
7. 使用边界
EasySync 是跨设备文件同步工具,不是多人实时协作系统。
请注意:
- 不要在多个设备上同时编辑同一个文件;
- 不要让 EasySync 与其他同步工具同时管理同一个本地仓库;
- 单纯的文件或文件夹改名、移动可以按身份同步;如果同时修改内容、目标位置被占用或身份不唯一,可能需要人工处理;
- 社区插件的同步选择按设备分别生效;在一台设备停用或卸载插件,不会自动删除云端文件或影响其他设备;
- 社区插件数据仍属实验性,可能替换其他设备上的插件设置,开启前请保留备份;
- 第一次同步、大量小文件或大文件传输需要更多时间;
- 自动处理只在安全条件完整时执行,条件不足会停止或转为人工处理;
- 同步不能代替独立备份,重要资料仍建议定期备份。
8. 遇到问题
先在 EasySync 设置中生成“诊断报告”。
提交问题时建议附上完整的 EasySync 诊断报告。
问题反馈:GitHub Issues
9. 许可
EasySync 采用 MIT License 开源。