普通文件与版本历史
每个文件的当前版本以普通文件保存在 Lazync 管理的文件库中;早期版本与稳定的文件标识关联,可从 Web 界面查看或恢复。
Lazync 将个人 NAS 或 Linux 文件服务器与桌面计算机上的一个绑定目录连接起来。 服务端以普通文件保存当前内容并维护历史版本;Lazarus 客户端监听本地目录、管理传输队列, 并在中断后继续同步。当前支持 Windows,后续计划提供 Linux 与 macOS 客户端。 存储位置、访问权限、TLS 与备份策略均由服务器管理员配置和维护。
Lazync 仍处于 Alpha 阶段。基本同步流程已经可用,但可靠的多设备使用所需的若干行为尚未完成。 请勿将其作为重要数据的唯一副本。
服务端运行在自行管理的 Linux 主机上。账号、目录权限、证书和存储数据均保留在该环境内。
当前数据以普通文件保存,可以直接读取。Lazync 在旁维护历史版本,不将文件内容封装在专有容器中。
服务端与客户端均以 GPL-3.0 许可发布,其同步、认证与存储行为可以通过源代码审阅。
服务端维护远端目录结构、历史版本与访问权限;桌面客户端将一个账号绑定到一个本地目录, 根据文件系统通知和远端变更日志执行同步。
每个文件的当前版本以普通文件保存在 Lazync 管理的文件库中;早期版本与稳定的文件标识关联,可从 Web 界面查看或恢复。
上传使用 8 MiB 分块,并持久保存传输进度;下载采用带条件的字节范围请求,从上一个已校验位置继续。
客户端从持久游标之后读取增量记录。游标失效时,协议要求先执行完整校验,再恢复增量处理。
更新过程使用临时文件和原子替换;恢复记录与独占写入锁用于在操作中断后维持文件库一致性。
认证模型包括用户账号、可撤销的设备凭据、限时会话与登录限流;目录权限可分别设置为只读或读写。
中英文 Web 界面支持上传、下载、目录管理、历史版本查看与恢复,以及由管理员维护用户和目录权限。
当前 Windows 版本提供中英文界面,可驻留系统托盘,并在程序重启后保留绑定状态。客户端基于 Lazarus 开发,待平台集成完成后计划提供 Linux 与 macOS 构建。
客户端结合递归文件系统通知与周期校验,处理离线期间的修改、遗漏通知和监听溢出;不同操作系统可分别接入各自的原生监听接口。
上传和下载使用独立的 FIFO 队列,每个方向同时运行一个任务。传输进度持久保存,SHA-256 校验内容,ETag 保护并发写入,下载文件采用原子安装。
支持文件、目录、Glob 和扩展名过滤,空目录也参与同步。当前 Windows 版本可选安装资源管理器状态角标,并为托管根目录显示 Lazync 图标;其他系统将采用对应平台的桌面集成方式。
设备令牌应保存在操作系统的安全凭据存储中;当前 Windows 版本使用 Credential Manager。客户端不会将账号密码或令牌写入 INI 文件。
证书校验使用操作系统信任存储,当前版本接入 Windows 受信任根证书。无法验证的私有证书需人工核对 SHA-256 指纹,并固定到对应的账号绑定。
服务端是账号权限、文件标识、历史版本和远端变更日志的权威来源;客户端的文件管理范围仅限于配置的托管目录及其中隐藏的元数据目录。
你日常使用的文件夹
安全凭据存储 · 本地绑定状态
账号权限 · 变更日志
普通文件 + 历史版本
Lazync 尚未达到通过简明、稳定且受支持的流程即可完成安装和运行的阶段。
公开仓库目前主要用于代码审阅和开发测试。运行服务端仍需自行构建,并手动准备配置、TLS、 文件系统权限与进程管理。这些细节仍在调整,不作为面向一般用户的安装方案介绍。
发行流程正在围绕可直接解包的 Linux 服务端、配套一键安装脚本和可安装的桌面客户端进行整理。 Windows 是当前优先完成的客户端打包目标;Linux 与 macOS 构建将在文件监听、安全凭据存储和 桌面集成分别完成适配与测试后提供。待发行包与升级路径一并验证后,再发布相应部署指南。
Lazync 尽量保持清晰的运行边界:文件存放在自行管理的服务器上,
同步状态可以检查,备份仍由服务器管理员负责。
传输安全、服务端存储与管理员责任是相互独立的部分。当前安全边界如下。
.lazync 元数据目录。在可信局域网之外开放服务前,请先阅读安全策略。
项目处于 Alpha 阶段,已形成基本同步能力,但仍有若干影响可靠多设备使用的情形尚未处理完整。
修改后的文件仍需完整传输,但中断后可以续传。单文件 2 TB、每个绑定 50 万个文件是协议上限, 不是经过验证的部署容量。实际能力取决于 NAS、文件系统、网络、版本保留策略与目录结构,详见 容量与传输限制。 Alpha 测试应使用另有备份的数据;开发进展记录在 GitHub 仓库。
Lazync = Lazarus + sync
服务端与客户端均使用 Free Pascal / Lazarus 实现。选择 Lazarus 的重要原因之一, 是为桌面客户端保留面向更多操作系统构建的能力。