ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Super Productivity 同步后端选型指南:SuperSync 与文件型提供者的共存现状与选择方法

Super Productivity 同步后端选型指南:SuperSync 与文件型提供者的共存现状与选择方法 Super Productivity 同步后端选型指南SuperSync 与文件型提供者的共存现状与选择方法【免费下载链接】super-productivitySuper Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, GitLab, GitHub and Open Project.项目地址: https://gitcode.com/GitHub_Trending/su/super-productivity本文基于仓库内的 2.08-Choose-Sync-Backend 编写系统讲解 Super Productivity 中各个同步Sync后端的定位、标签含义、适用场景与限制并结合 SYNC_FORM 等源码印证设置表单中的真实选项。读完你可以明确同步究竟备份了什么数据、五种含实验性选项六种提供者分别适合什么部署形态、Beta/experimental 标签到底意味着什么以及为什么 Local file 绝不能配合 Syncthing 一类工具使用。1. Sync 是什么全量数据同步每台设备只配置一个提供者Sync 负责把你的完整 Super Productivity 数据任务、项目、时间跟踪、设置、归档等在这台设备与远端位置或另一台设备之间备份和同步。两个关键规则每台设备只配置一个同步提供者one sync provider per device不同设备可以使用不同的提供者Sync provider 设置本身不参与同步——各设备上的提供者选择互不覆盖你需要在每台设备上单独选择。如果你只在单台设备上使用 Super Productivity并不强制要求启用任何同步后端。文档给出的建议是确保已配置好备份并且知道在数据损坏时如何通过 2.02-Restore-Data-From-Backup 恢复数据。数据与备份在各平台的存放位置见 3.06-User-Data 与 4.23-Managing-Your-Data。同步配置入口在设置 → Sync Backup 选项卡 → Sync 区域打开Enable syncing然后从Sync provider下拉框中选择提供者。各提供者的逐项参数配置方法详见 2.09-Configure-Sync-Backend从零开始的完整流程见 1.02-Configure-Data-Synchronization。2. 同步架构正处于过渡期操作型协议与文件型协议并存这是选型前必须理解的背景应用正在迁移到新的基于操作operation-based的同步模型——变更以操作的形式发送而不是整个数据块。为此专门构建的后端就是SuperSync也是目前新功能开发集中的方向。其余提供者Dropbox、Nextcloud、WebDAV、Local file沿用当前的文件型file-based同步并且持续受支持。特别注意措辞代码中的 legacy 指的是较旧的技术实现不代表弃用或移除——开发者已声明 WebDAV 和 Local file 在未来相当长时间内大概率会继续保留。选型时应匹配你的部署形态与风险偏好而不是默认带 legacy/experimental 字样的就要被淘汰。从源码结构看这个过渡期在仓库里体现得非常直接操作型协议的核心逻辑集中在 packages/sync-coreoperation.types.ts定义操作结构vector-clock.ts提供向量时钟conflict-resolution.ts实现冲突解决replay-coordinator.ts负责远端操作的回放协调。同步与操作日志架构文档 对这套机制有更完整的说明。文件型同步则通过各提供者的适配层落地例如 Nextcloud 提供者接线 展示了应用侧如何把凭据存储、Web 请求等具体依赖注入到sp/sync-providers包中的通用实现。provider.const.ts 中的REMOTE_FILE_CONTENT_PREFIX pf_是文件型同步文件的魔数前缀用于校验远端同步文件的合法性SyncStatus如Conflict、UpdateRemoteAll与ConflictReason枚举则刻画了每次同步的状态判定结果。3. Sync provider 下拉框中的标签到底意味着什么在Sync provider下拉框中你会看到以下选项。文档给出的官方解释如下并附当前源码中 SYNC_FORM 定义的实际选项作为对照下拉框标签含义要点SuperSync (Beta)为操作型协议打造的新同步服务积极开发中支持实时同步与可选的服务器端端到端加密E2E。Beta 意味着仍在稳定化部分用户会偏好文件型选项直到 SuperSync 脱离 BetaDropbox通过 Dropbox 账户的文件型同步OAuth 登录应用内不存密码广泛使用且稳定未弃用Nextcloud通过 Nextcloud Files 的 WebDAV 端点同步专为 Nextcloud 设计应用会根据你的服务器 URL 和用户名自动拼出 WebDAV files URLWebDAV (experimental)通过其他任意 WebDAV 兼容服务器同步如 ownCloud 或 NAS标注 experimental 是因为各家 WebDAV 实现差异大不一定都能顺畅工作该选项不会被移除Local file (experimental)把同步文件保存到本机某个文件夹桌面或 Android标注 experimental 是因为行为取决于你如何使用该文件夹例如多个应用实例同时运行对多数用户工作正常且不会被移除两点源码级补充当前表单中还包含 Microsoft 365 / OneDrive (experimental) 选项仅在IS_ONEDRIVE_SUPPORTED为真时显示sync-form.const.ts#L201-L208它的配置门槛较高需要自建 Microsoft Entra 应用注册细节见 2.09-Configure-Sync-Backend 的 OneDrive 一节。Local file 选项只在桌面Electron或 Android WebView 中显示sync-form.const.ts#L213-L220 中的IS_ELECTRON || IS_ANDROID_WEB_VIEW条件这与桌面或 Android的平台描述一致。桌面端用文件夹选择器local-file-sync-electron.tsAndroid 端走 Storage Access Frameworklocal-file-sync-android.ts。另外高级用户还可以把其他存储服务包装成 WebDAV 使用——例如通过本地 rclone WebDAV 桥接使用 Proton Drive见 2.19-Sync-Proton-Drive-via-rclone。这不是内置的 Proton Drive 提供者属于进阶玩法。提供者 ID 的权威定义在 SyncProviderId 枚举中Dropbox、OneDrive、WebDAV、LocalFile、SuperSync、Nextcloud文件里do not change的注释表明这些字符串值会被持久化到用户设置中属于兼容性契约。4. 按场景选型哪种部署形态选哪个后端文档给出的决策路径保留原文语义想要最新的同步技术栈、且能接受 Beta→SuperSync自托管或官方托管。适合需要实时同步、或想要服务器端 E2E 加密的用户。想要云端同步但不想自己跑服务器→Dropbox稳定且支持完善。已经在用 Nextcloud→ 选Nextcloud而不是通用 WebDAV除非你确实需要手动输入完整的 WebDAV base URL。已经有其他 WebDAV 服务器→WebDAV。能用就成了不行则说明 experimental 标签名副其实——WebDAV 兼容性因服务器而异。想要备份/同步到本地或网络文件夹仅桌面或 Android→Local file。无账户、无需联网适合单设备或备份到外置硬盘/NAS。不要用 Syncthing、Resilio 之类的工具同步同一个文件夹——会引发冲突多设备同步请改用 WebDAV、Dropbox 或 SuperSync。使用 Proton Drive 且接受进阶配置→ 用WebDAV 本地 rclone 桥接2.19。非官方内置提供者。各提供者的平台、认证方式、可选加密能力对比完整表格见 3.08-Sync-Integration-Comparison。几个与平台相关的实现细节浏览器环境下 WebDAV/Nextcloud 请求可能被CORS拦截表单会自动显示 CORS 提示Electron 与原生移动端不受影响见 sync-form.const.ts#L65-L76 的!IS_ELECTRON !IS_NATIVE_PLATFORM判断因此浏览器里同步不稳时建议改用桌面版。仓库自带 WebDAV 同步的端到端验证环境webdav.fixture.ts 与 check-webdav.ts配合根目录的 webdav.yaml说明 WebDAV 路径是 CI 中真实覆盖的。5. 重点警示Local File 与 Syncthing/Resilio 不能混用这是文档单列一节强调的坑Local file 同步把数据存在设备上的一个文件夹里应用明确警告——不要用文件同步工具Syncthing、Resilio 等同步这个文件夹到其他设备因为会产生冲突。从 3.08 的说明 可以推断出底层原因本地文件系统的访问无法对并发写者做原子协调cannot atomically coordinate concurrent writers两端同时同步时会互相覆盖。多设备同步请走 Nextcloud、WebDAV、Dropbox 或 SuperSync。逻辑层冲突解决两台设备改同一条数据在所有提供者上走同一套操作规则但传输层保证不同Local file 是单写者模型WebDAV 的原子写保护则依赖服务器提供强 ETag 支持。6. 凭据、加密与数据格式选型时的隐性差异以下细节虽不在 2.08 正文展开但直接影响选型判断且有源码依据OAuth 类提供者只有 Dropbox 与 OneDriveOAUTH_SYNC_PROVIDERS 明确列出这两个 ID。Dropbox 走 OAuth 2.0应用内只存令牌、不存密码Nextcloud/WebDAV 则存储用户名 应用密码/密码。敏感凭据的落盘位置provider.const.ts#L60 的PRIVATE_CFG_PREFIX __sp_cred_前缀 提供者 ID用于在 IndexedDB 中存储 OAuth 令牌等私密配置注释标明该前缀不可变更。加密均为可选文件型提供者在首次启用时可设置客户端加密密码密钥不上传SuperSync 则提供服务器端 E2E 加密选项。若文件型提供者在另一台设备被意外收到未加密的远端文件应用会拒绝导入降级保护而不是悄悄关闭加密。SuperSync 的服务器端独立成包packages/super-sync-server 提供了自托管所需的 Dockerfile、Prisma schema 与部署文档根目录的 docker-compose.supersync.yaml 用于本地拉起一套自托管同步服务器。默认官方服务器地址https://sync.super-productivity.com定义在 SUPER_SYNC_DEFAULT_BASE_URL在设置表单的 Advanced 区域可改为自托管地址sync-form.const.ts#L753-L761。7. 小结与延伸阅读选型的一句话总结要实时同步与 E2E 加密、且能接受 Beta 选 SuperSync要免运维云同步选 Dropbox已有 Nextcloud/其他 WebDAV 服务器就选对应提供者只想要单设备或网络文件夹备份选 Local file切记不配 Syncthing/Resilio。标签中的 Beta/experimental 反映的是稳定性现状而非移除计划。下一步按此路径继续2.09-Configure-Sync-Backend — 逐项配置你选定的提供者含 OneDrive 的 Entra 注册步骤与HTTP 400排错3.08-Sync-Integration-Comparison — 平台/认证/加密能力对照表与各提供者细节1.02-Configure-Data-Synchronization — 从零配置同步的快速上手2.19-Sync-Proton-Drive-via-rclone — 通过 rclone WebDAV 接入 Proton Drive4.23-Managing-Your-Data、3.06-User-Data — 数据与备份的存放位置、冲突与同步行为sync-and-op-log 文档集 — 操作日志与同步架构的深入设计文档【免费下载链接】super-productivitySuper Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, GitLab, GitHub and Open Project.项目地址: https://gitcode.com/GitHub_Trending/su/super-productivity创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表