<br />
<br />
现在fnos还需要一个核心的私有网盘功能,需要支持以下几个功能,市面上一些私有网盘产品都不太够用,只有群晖的drive基本实现了这些,这些功能点也是我用了群晖drive之后提炼出的,希望与开发组分享一下,迅速找到功能痛点,早点做出大家都喜欢的私有网盘功能。
这个同步方式应该是标准的主从同步,和syncthin/微力等工作模式不同,服务器作为主机有所有文件的完整副本,客户端所有数据以服务器为准作为同步比较的基本原则。
下面我列一下这个网盘应用我希望有哪些功能:
- 文件同步:
- 多平台客户端:支持win/mac/linux/ios/android/hmos/owrt……等多个平台。
- 多个不同的同步任务:<客户端功能>:每个端都可以设置多个任务,每个任务指定一个服务器上的有权限目录,支持方向为:双向/单向下载/单向上传。
- 多任务:每个同步任务互相不干扰独立运行。
- 按需同步:客户端可以设置在同步任务内的多个或全部目录/文件使用按需同步的方式。即客户端同步时只同步文件列表,不下载文件。
- 使用时下载:当客户端内有其他程序访问该文件时,才从服务器下载文件的最新版本。
- 超时清理:当文件超过指定时间(n天)没有访问时,从客户端清除该文件,仅保留列表,节省客户端本机空间。
- 永久可用:允许客户端设置按需同步的目录内的某些文件永久保持可用状态,即永远在客户端同步该目录/文件的副本。
- 过滤器:允许用户设置正则过滤规则,过滤例如lnk或者其他情况的无效文件。
- 双向:常规的同步方式,服务器指定目录和多个客户端之间的所有文件保持一致。
- 单向下载:客户端仅下载服务器的最新版本,本地任何改动都不会上传,并且当检测到用户改动时,提醒用户自行备份<文件名>,确认后重新下载服务器上的版本。
- 单向上传:客户端仅上传本地文件到服务器,服务器任何改动都不会下载到客户端,也不做通知。单向上传任务不允许使用重复目录防止冲突,或者单向上传文件统一管理,不允许创建目录,系统直接分配以客户端名称+uuid的目录名。
- 冲突处理:允许用户设置服务器和本地文件不一致时的处理原则,比如本地修改优先,重命名保存双版本,本地删除同步删除/本地删除重新从服务器下载等。
- 数据备份:同步目录可以设置为多版本模式。
- 历史版本备份:自动产生多个历史文件版本,可以设置历史备份策略,自动备份和自动清理历史版本。
- 固定周期,保留每日一个版本,最近N天的策略。
- 倍增周期,每1/2/4/8/16日等,最近N个版本的策略。
- 临时版本,最近24/48小时建议每次文件变更都生成新版本,防止误操作丢失数据,可以随时回溯。
- 回溯管理器:<服务端/客户端功能>:可以浏览历史版本,查看每个版本的文件改动列表,选择删除或者导出这个版本。
- 增量备份,为了节省空间建议使用增量备份的策略,并可以支持压缩功能,提供压缩效率的cpu性能评估数据。
- 多重备份,可以设置备份份数,可以在多个驱动器上分别备份,还可以支持远程另一台fnos进行备份。该功能应该是独立于也应该可以使用多重备份功能。
- 照片视频备份:这个功能最好是一个整合功能,可以配合私有网盘的其他功能,比如外链分发,数据共享等。这个功能没必要有历史版本了,因为照片基本上都是每个文件独立的不会修改源文件。
- 同步策略:照片与视频是一个单独的同步策略,不需要文件类的同步策略。
- 备份后按需下载:该策略可以选择性开启,开启后同步上传到服务器后,本地用缩略图代替,访问时自动从服务器下载源文件,极大地节约本地空间。
- 备份后不处理:该策略仅备份图片视频,不对本地数据处理。
- 相册浏览模式:如系统限制,无法用系统相册功能使用按需下载,则需要开发相册浏览功能,让用户代替系统相册,实现按需下载功能。
- 去重:自动分析照片和视频,整理出重复内容让用户筛选删除。
- 自动相册:识别用户相册,根据人物/地点/……等条件生成相册方便浏览,该功能不建议改变文件目录结构和名称,仅为浏览生成数据库即可。
- 多用户:网盘针对每个用户单独保存,统一托管数据,每个用户的空间独立互相不可访问。每个网盘针对每个用户单独保存,统一托管数据,每个用户的空间独立互相不可访问。
- 数据共享:网盘设置公共区域,可以针对用户组和用户设置访问权限,使用私有网盘的用户如果权限允许就可以访问。另外他们也可以把自己的目录加入到公共区域,让拥有该公共区域权限的其他用户访问到。权限需要区分读/写/创建/删除这些。
- 外链分发:网盘应该支持用户将自己的文件创建一个外部访问链接,可以通过指定的域名(ddns或者fnos官方分配地址)开放给外网未登陆用户访问。需要支持密码/限时/限次等文件保护方式。
- 服务器文件管理:<客户端功能>:可以直接浏览服务器上的目录,权限与web使用时账户权限一致,可以通过网盘客户端管理服务器的文件,包括复制,移动,删除,上传,下载等等。
暂时就是这些,以后有想到的再补充,希望开发团队可以参考这些功能设定,做出好用的私有网盘应用。
顺便吐槽一下web的md编辑器太难用,每次按shift+↓就产生一堆无用内容,还得删半天,这贴在编辑器里面写的,排版就酱紫吧。 |