我做了一个文件管理工具, 基本的功能和想法是这样的:
1. 分类问题, 我用了纯标签管理, 没有文件夹, 并且规定每个文件必须至少有两个标签,
基于这样的基本理念, 做了一个很强大的标签系统, 详细说明看这里:
https://github.com/ahui2016/localtags/wiki2. 版本问题, 我允许软件里有同名文件, 并且只要上传同名文件就自动生产备份, 用上传时间区分版本.
3. 文件内容重复: 不允许, 软件里每一个文件都是唯一的.
4. 校验(文件完整性), 用 sqlite 记录了每个文件的 sha256, 并且可以自动修复文件(利用备份功能)
另外, 每次触发自动校验, 只校验一小部分文件, 因此用户感觉不到校验卡顿.
5. 备份功能: 采用单向同步备份. 因为双向备份很容易出错, 并且用户使用时还要逐一选中覆盖方向.
使用单向备份后就方便了, 用户只需要点击备份按钮, 剩下的全自动, 不用处理冲突问题.
6. 由于有备份功能, 又有自动的文件完整性校验, 因此我认为备份有两份就行, 两个硬盘同时坏掉的可能性已经很低了.
另外, 我没有做云盘备份功能, 只做了本地备份.
这个工具的最大特点是标签系统, 很强大, 可以让用户对文件分类有很充分的掌控. 但是也有很多缺点, 比如要求每个文件至少有两个标签, 如果不这样要求, 标签系统的威力就无法体现, 但这样要求, 使用时的心智消耗实在太大.
============
上面说的工具我自用了几年, 最近在做一个新版(还没完成), 抛弃了标签系统, 另外新增了加密功能.
新版允许用户新建多个仓库(文件夹), 每个仓库可以选择是公开或加密, 上传到加密仓库的文件会自动加密.