收起左侧

飞牛同步模块功能需求与设计

2
回复
171
查看
[ 复制链接 ]

2

主题

0

回帖

0

牛值

江湖小虾

2025-9-26 15:10:28 显示全部楼层 阅读模式

#飞牛nas作为一个存储,文件备份功能必不可少,而且应该是其核心功能之一,建议作为优先开发的模块。

飞牛文件同步模块需求分析:
1.文件备份与恢复。
1)需求背景:使用飞牛的用户大多是专业IT或者发烧友,所以一个典型场景是备份主力电脑中的重要文件,他可能是一些文档、源代码、照片、视频等。
2)功能需求:所以需要简单直接的原封不动的完整镜像源文件结构与内容,并保留历史版本(快照)。
3)备份功能设计:
镜像模式。采用全量或差量更新的方法,完全保持与源文件结构一致的内容;支持实时同步、计划任务同步和手动同步三种同步方式;支持手动和计划任务两种快照模式。
4)恢复功能设计:
镜像模式。与备份功能相同,需要保持云端文件结构与本地完全相同。
5)同步功能设计:
自动同步模式。双向增量文件的上传和下载。但这会引发版本冲突问题。如何判断云端版本和本地版本的差异?
保底方式通过文件hash实现,此时需要nas实时计算每个文件的hash值,并实时更新数据库,对nas造成不小的压力。
通过文件时间和大小判断,此方式无法保证完全准确,因为无法保证C/S双方时间的一致性,另外文件大小并不能说明内容一致性。
人工判断同步模式。当发生冲突时,将冲突列表反馈至前端,由人工判断复制的方向,最终达成双向一致。
4)当前功能的问题:因为终端内容的频繁更改,会导致云端文件内容混乱不堪,一个文件/文件夹的重命名、移动等操作都会生成冗余的内容,而当需要文件恢复时,下载下来的内容对于备份的人来说,简直是一个灾难。
仅上传。仅上传内容发生变化的文件和新增的文件,但文件的删除和移动都会造成云端内容的混乱,无法完成准确完整的备份任务。
仅下载。同样的,因其不会删除本地文件,所以会造成本地文件版本的完全混乱,也无法完成准确完整的恢复任务。
双向同步。从功能设计上,双向同步貌似为了达成完整备份与恢复的需求,但其有个巨大的bug,就是实时二字。需要实时飞牛同步客户端,客户端监控本端文件操作,实时操作云端文件。也就是说,当客户端退出程序期间发生的所有变化,均会导致两者的版本不一致,进而出现上述问题。

有个开源的文件备份软件叫做,FreeFileSync,功能设计比较符合需要,供参考。

收藏
送赞
分享

6

主题

1万

回帖

0

牛值

管理员

2025-10-11 17:58:55 显示全部楼层
感谢反馈,这个我们转给相关同事评估一下

0

主题

2

回帖

0

牛值

江湖小虾

2025-10-18 17:36:17 显示全部楼层

目前的文件同步功能做的很不好,我已经动了重回群晖的心了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则