拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Super Productivity 同步后端配置全指南:SuperSync、Dropbox、OneDrive、Nextcloud、WebDAV 与本地文件

Super Productivity 同步后端配置全指南SuperSync、Dropbox、OneDrive、Nextcloud、WebDAV 与本地文件【免费下载链接】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-productivitySuper Productivity 是一款集成时间盒Timeboxing与时间跟踪的高级待办事项应用其数据同步能力覆盖任务、项目、时间记录、设置与归档。本文围绕应用内设置 → 同步与备份Sync Backup→ 同步Sync表单逐一讲解 SuperSync、Dropbox、OneDrive、Nextcloud、WebDAV 与本地文件Local File六种后端的完整配置方法、字段含义、加密机制与常见排障思路。读完本文你将能根据自身设备组合与服务现状正确选型并独立完成某一同步后端的配置、验证与加密设置。配置入口同步表单在哪里打开设置齿轮图标。进入同步与备份Sync Backup选项卡。在同步Sync区域打开Enable syncing启用同步开关并从下拉框选择Sync provider同步提供方。选中提供方后表单会动态显示该提供方所需的字段。每个提供方之外还有一组通用选项同步间隔、仅手动同步、加密将在各提供方小节之后统一介绍。值得说明的是这个表单并非写死的静态 HTML而是由代码仓库中的 src/app/features/config/form-cfgs/sync-form.const.ts 用 Formly 动态声明驱动的。例如下拉框的可选项来自该文件中的SYNC_FORM.items定义SuperSync、Dropbox、Nextcloud、OneDrive实验性、WebDAV不推荐/无支持以及仅在桌面端或 Android WebView 下出现的 LocalFile。各字段的hideExpression会在切换提供方时即时重组表单这正是表单内容取决于所选提供方的底层实现。同步前先了解数据去向同步既用于备份也用于多设备间同步完整数据任务、项目、时间跟踪、设置、归档等。每台设备只能配置一个同步提供方且各设备可以使用不同的提供方syncProvider这个设置本身不会在设备间同步。如果你只在一台设备上使用同步并非必需但务必确保配置了备份并了解如何从备份恢复见 2.02-Restore-Data-From-Backup.md。数据与备份的存储位置详见 3.06-User-Data.md 与 4.23-Managing-Your-Data.md。同步模型的过渡背景Super Productivity 正在向基于**操作operation**的新同步模型迁移——变更以操作而非整块数据文件的形式发送。SuperSync 正是为该模型打造的后端也是当前开发的重点其余提供方Dropbox、Nextcloud、WebDAV、本地文件仍使用现有的基于文件的同步并继续保持受支持状态。代码中的legacy指代较旧的技术实现并不代表弃用或移除。选型权衡详见 2.08-Choose-Sync-Backend.md。SuperSyncBeta面向操作同步模型的服务端后端SuperSync 是官方同步服务在 packages/sync-providers/src/super-sync/super-sync.model.ts 中定义其默认服务器地址为https://sync.super-productivity.com。应用会显示说明SuperSync 让任务在设备间实时同步数据存储于同步服务器当前处于Beta阶段。获取并填写 Access Token点击Open Server Get Token打开服务器并获取令牌应用会在浏览器中打开服务器登录页。登录后复制你的访问令牌Access Token。将令牌粘贴到Access Token字段SuperSync 必填。该按钮在 sync-form.const.ts 中对应BTN_GET_TOKEN的实现点击时读取当前表单中的baseUrl若为空则回退到SUPER_SYNC_DEFAULT_BASE_URL再用window.open(baseUrl, _blank)打开登录页。多设备使用方式既可以在每台设备上复用同一个访问令牌也可以在各设备上分别登录获取新令牌。两种方式都会连接到同一个 SuperSync 账户并同步同一份数据。注意在添加设备时不要使用 Revoke Replace Token撤销并替换令牌——该操作会使所有现有令牌失效导致全部设备断开连接。高级选项在Advanced高级折叠区中可以Server URL服务器 URL设置自定义服务器地址自托管时使用使用官方服务器则保持默认。默认值来源于上述SUPER_SYNC_DEFAULT_BASE_URL可在 src/app/features/config/default-global-config.const.ts 中看到生产环境默认为https://sync.super-productivity.com非生产环境默认为http://localhost:1901。Enable Encryption启用加密开启端到端加密。应用会提示密码丢失的后果以及服务器数据会被替换的警告。加密相关操作启用加密后可在同一表单中执行Change Password更改密码或Disable Encryption禁用加密。这两项操作都会替换服务器上的数据并要求所有设备使用相同密码或以新密码重新上传。需要特别注意的是在 sync-form.const.ts 的加密状态框中SuperSync 的禁用加密按钮是被隐藏的——SuperSync 场景下加密是必选能力只能改密码而不能彻底关闭。SuperSync 使用固定的同步间隔表单中不会显示Sync interval同步间隔与Only sync manually仅手动同步选项这两个选项仅适用于基于文件的提供方。SuperSync 的配置模型可见 src/app/features/config/global-config.model.ts 中的SuperSyncConfig它继承 WebDAV 的baseUrl/userName/password并扩展accessToken、isEncryptionEnabled与encryptKey。其中encryptKey加密密码存放在私有配置中而非常规配置避免被普通导出携带。另一个值得一提的细节实验性的实时追踪在场tracking presence开关与设备名被刻意排除在SuperSyncConfig之外它们是每设备的私有选择不会被上传或在设备间共享相关注释同样可见于该模型定义处。DropboxOAuth 授权无需保存密码选择 Dropbox 后应用走OAuth流程你会被带到 Dropbox 登录并授权应用。Dropbox 密码不会存储在应用内仅保存令牌。认证方式Dropbox 属于 provider.const.ts 中定义的OAUTH_SYNC_PROVIDERS与 OneDrive 并列——这类提供方通过 OAuth 认证并在运行时提供getAuthHelper()。表单中 Dropbox 部分不设任何凭证字段因此 sync-config.service.ts 的PROP_MAP_TO_FORM中 Dropbox 映射为null它不在表单里存设置。同步间隔与仅手动同步适用见下文通用选项。加密基于文件的提供方在Advanced下可启用加密你将设置一个客户端加密密钥Dropbox 中的数据以加密形态存储。OneDriveMicrosoft 365需自建 Microsoft Entra 应用注册OneDrive 同步仅在桌面端Electron与 Android 上可用Web 应用中不可用。源码层面的支持判定见 onedrive-auth-mode.const.tsIS_ONEDRIVE_SUPPORTED IS_ELECTRON || IS_NATIVE_PLATFORM而HAS_OFFICIAL_ONEDRIVE_CLIENT_ID取决于构建时是否注入了官方客户端 ID。核心前提仓库当前没有内置 OneDrive 客户端 ID因此Use my own app registration使用自己的应用注册选项始终为开。你需要在 Microsoft Entra 管理中心本句仅作说明用途的应用注册 → 新注册中创建应用并按下述方式将其配置为公共客户端public client重定向 URI在移动与桌面应用程序平台身份验证 → 添加平台 → 移动和桌面应用程序下添加重定向 URI桌面端Electronsuperproductivity://oauth-callback/onedriveAndroid / 手动回退https://login.microsoftonline.com/common/oauth2/nativeclient切勿将这些 URI 注册在Web或单页应用程序SPA平台下——否则令牌兑换会失败并返回HTTP 400例如AADSTS9002327。允许公共客户端流在身份验证中将允许公共客户端流设为是Yes。Super Productivity 使用 PKCE 认证且不发送客户端密钥若设为否登录看似成功但令牌步骤会以HTTP 400 Bad Request失败AADSTS7000218: ... client_assertion or client_secret。API 权限在API 权限下添加 Microsoft Graph委托delegated权限Files.ReadWrite.AppFolder与offline_access。完成注册后回到 Super Productivity 填写Application (Client) ID应用程序客户端 ID必填来自应用注册的应用程序客户端ID。Tenant ID租户 ID个人或多租户登录填common或填你的具体租户 ID。源码默认值正是common见 sync-config.service.ts 的PROVIDER_FIELD_DEFAULTS。Sync Folder Path同步文件夹路径存储在你的 OneDrive应用程序文件夹App Folder内默认Super Productivity而非 OneDrive 根目录。Authenticate认证通过应用提供的链接登录。桌面端自动捕获重定向Android/手动场景下将授权码复制回应用即可。同步间隔、仅手动同步与加密Advanced 下与其它基于文件的提供方一致。排障登录成功后仍报HTTP 400 Bad Request这是注册并非公共客户端的典型特征。请确认允许公共客户端流已设为是重定向 URI 位于移动和桌面应用程序平台下而非 Web/SPA。应用会把底层的AADSTSxxxxx错误码透出到错误信息中帮助定位具体原因。Nextcloud基于 WebDAV 文件端点Nextcloud 走文件型同步应用会根据服务器 URL 与用户名拼接 WebDAV 文件 URL。需要填写Server URL服务器 URL必填例如https://cloud.example.com或https://example.com/nextcloud。Username用户名必填必须是你的 Nextcloud用户 IDuser ID——不是邮箱地址或显示名。查找方法在 Nextcloud 中打开文件Files点击左下角的设置齿轮复制其中WebDAVURL形如.../remote.php/dav/files/user-id/里的user-id。不要使用文件夹地址栏里的数字——那是文件夹 ID不是用户 ID。Nextcloud 接受邮箱/登录名进行认证因此填错的值常常能通过登录却因文件路径不存在而在同步时返回404。Login name / email可选仅当你的 Nextcloud 登录名是邮箱或其他与Username不同的值时使用。留空则应用用Username进行认证。该字段在配置中被列入CLEARABLE_FIELDS见 sync-config.service.ts即清空它会被视为恢复默认而不是未修改。App Password应用密码必填在 Nextcloud 的设置 → 安全 → 应用密码中创建。Sync Folder Path同步文件夹路径相对账户 WebDAV 文件根目录的路径存放同步文件例如/super-productivity或/。这不是服务器内部的文件系统路径。默认值为super-productivity见 default-global-config.const.ts。同步间隔与仅手动同步适用。加密在Advanced下可用。对应表单字段定义在 sync-form.const.ts 的 Nextcloud 分组中serverUrl、userName、loginName、password、syncFolderPath且仅在浏览器Web环境下额外显示 CORS 提示。WebDAV实验性通用 WebDAV 兼容服务器提示信息表单会说明通用 WebDAV 同步按现状提供、无技术支持。如果你在用 Nextcloud请改用Nextcloud同步选项。在浏览器中使用时可能看到CORS提示你可能需要允许应用对你的 WebDAV 服务器发起 CORS 请求。请自行承担使用风险。Base URL基础 URL必填例如https://webdav.example.com/remote.php/dav/files/yourUserName/或你服务器提供的 WebDAV 基础 URL。Username / Password必填。Sync Folder Path相对 WebDAV 服务器根的路径存放同步文件例如/super-productivity或/。不是服务器内部文件系统路径。同步间隔与仅手动同步适用。加密在Advanced下可用。从源码看WebDAV 表单由 sync-form.const.ts 中的createWebdavFormFields统一生成该工厂函数同时被 SuperSync 复用四个必填字段分别是baseUrl、userName、password、syncFolderPath。进阶用户也可以把其他存储如 Proton Drive通过本机 rclone 的 WebDAV 桥接后走此选项详见 2.19-Sync-Proton-Drive-via-rclone.md但这并非内置的 Proton Drive 提供方。Local File实验性本地/网络文件夹备份Local File 仅在桌面端Electron与 Android可用Web 应用不可用。源码中该项的显示条件为IS_ELECTRON || IS_ANDROID_WEB_VIEW见 sync-form.const.ts 的提供方下拉框定义。提示信息表单说明本地文件同步把数据存到设备上的一个文件夹里并警告不要用文件同步工具如 Syncthing、Resilio在设备间同步该文件夹——可能造成冲突。多设备同步建议使用 WebDAV、Dropbox 或 SuperSync。Sync folder path同步文件夹路径必填。桌面端点击Sync folder path按钮打开文件夹选择器选择存放同步文件的目录Android 上同一按钮会打开存储访问框架SAFStorage Access Framework来选择文件夹。所选文件夹只有在按下Save保存后才生效不保存就关闭对话框会保留之前的文件夹。这个准备但不立即提交的行为在 sync-form.const.ts 中有明确注释#9075主进程桌面端持有待定选择DialogSyncCfgComponent.save()才真正提交并触发目标变更失效取消则丢弃。此外自#8228起本地文件夹路径由主进程侧持有如electron/local-file-sync.ts渲染进程的凭证存储中不再可写该路径以防被篡改。同步间隔与仅手动同步适用。加密在Advanced下可用。通用选项同步间隔与手动模式以下选项适用于Dropbox、OneDrive、Nextcloud、WebDAV、Local File这些基于文件的提供方SuperSync 使用固定间隔不显示Sync interval同步间隔应用自动同步的频率。当仅手动同步开启或提供方为 SuperSync 时隐藏。默认值为 1 分钟syncInterval: minute见 default-global-config.const.ts。表单中的该字段为时长类型且允许秒级精度isAllowSeconds: true。Only sync manually仅手动同步禁用自动同步勾选后同步只在你主动触发时进行例如点击同步按钮。仅在基于文件的提供方下显示源码中通过isSyncProvider(field, 2, null)判断即提供方为 Dropbox、WebDAV、LocalFile、Nextcloud、OneDrive 之一时可见。该选项与同步间隔互斥——勾选后同步间隔字段会被隐藏并重置。此外在Advanced折叠区里还有两个与文件型同步相关但原文档之外值得一提的可选项由 sync-form.const.ts 定义isCompressionEnabled启用压缩对同步文件启用压缩默认关闭。isUseSplitSyncFilesSurgical 拆分文件同步实验性的增量同步方案把文件型同步存为一个小型常读的操作文件sync-ops.json加一个很少重写的快照sync-state.json换取 O(增量) 的同步开销。默认关闭且对同一同步文件夹是单向迁移一旦某客户端开启并迁移了文件夹其他客户端也必须开启才能继续相关说明见 global-config.model.ts。加密两种模型一个原则SuperSync 加密在 SuperSync 区块内配置Enable Encryption、Change Password、Disable Encryption均位于该区块。服务器只能存加密后的数据密码由你管理且所有设备必须使用相同密码。开启加密后表单状态框会显示加密密码已设置并提供更改密码入口如前文所述SuperSync 不提供禁用加密按钮因为其加密是必选项。基于文件的提供方加密Dropbox、OneDrive、Nextcloud、WebDAV、Local File在Advanced下启用客户端加密。你设置一个加密密钥应用在发送前加密数据密钥不会发送给提供方。在每台设备上必须在下次同步前设置相同的密钥丢失密钥意味着数据无法解密。已启用加密时表单显示密码已设置并提供Change Password更改密码或Disable Encryption禁用加密/ Remove Encryption移除加密。启用或禁用加密都会替换远端数据Dropbox 文件、Nextcloud/WebDAV 文件夹或本地文件并影响所有设备。从实现上看加密状态由 sync-config.service.ts 的_deriveEncryptionState从私有配置推导对于文件型提供方根级isEncryptionEnabled标志与私有配置中的encryptKey协同决定表单展示。涉及加密密钥、密码、访问令牌、刷新令牌等字段的配置在日志中会被统一脱敏为[REDACTED]该文件的SENSITIVE_FIELDS数组即为此而设避免凭证泄露到可导出的日志中。验证同步是否工作自动同步等待下一个同步周期或在界面上手动触发一次同步若 UI 提供该入口然后在同步状态或通知中确认成功。第二台设备在另一台设备上启用相同提供方并登录或指向同一账户/文件夹。首次同步后数据应一致若两侧都已有数据应用可能提示你选择使用本地或使用远程。仅备份场景如 Local File打开同步文件夹确认同步文件存在并在同步后得到更新。若同步失败请回头核对各提供方的硬性要求例如 Nextcloud 的用户名与登录名区分、WebDAV URL 格式、Web 应用的 CORS 配置。完整的端到端操作流程见 1.02-Configure-Data-Synchronization.md提供方横向对比见 3.08-Sync-Integration-Comparison.md。小结提供方平台认证/凭证必填核心字段加密位置SuperSync (Beta)全平台Access TokenAccess TokenServer URL 可选SuperSync 区块内必选Dropbox全平台OAuth不存密码无需字段仅授权Advanced 下客户端加密OneDrive桌面端 AndroidOAuth 自建 Entra 应用Application (Client) ID、Tenant IDAdvanced 下客户端加密Nextcloud全平台用户名 应用密码Server URL、Username、App Password、Sync Folder PathAdvanced 下客户端加密WebDAV (实验性)全平台用户名 密码Base URL、Username、Password、Sync Folder PathAdvanced 下客户端加密Local File (实验性)桌面端 Android无账户Sync folder path文件夹选择器Advanced 下客户端加密选择提供方的决策路径想要实时同步且能接受 Beta →SuperSync不想自建服务器 →Dropbox已有 Nextcloud →Nextcloud其他 WebDAV 服务器 →WebDAV仅本机/局域网文件夹备份 →Local File切勿用 Syncthing/Resilio 同步该文件夹。无论选择哪一种都请牢记多设备共享的加密密钥必须一致丢失密钥即丢失数据同步不能替代恢复演练——确保你了解如何从备份恢复2.02-Restore-Data-From-Backup.md。配置模型与默认值的权威定义可进一步查阅 global-config.model.ts 与 default-global-config.const.ts表单行为的完整逻辑则在 sync-form.const.ts 与 sync-config.service.ts 中。【免费下载链接】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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门