V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Licsber
V2EX  ›  问与答

各位如何解决文件管理问题?关于分类、去重、归档、快照、321 备份、分享、反向分享?

  •  
  •   Licsber · 2023-04-15 00:04:25 +08:00 · 3406 次点击
    这是一个创建于 581 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    想找一个文件找了十分钟终于找到!于是很气愤,准备整理、梳理一下。
    初步排查了下目前设备里的所有文件,发现自己的文件管理做的可以说是非常混乱,什么规则都有!

    大概根据不同文件夹的需求划分:

    1. 是否具有时效性?即一次性文件,过了一段时间可能只会因为比较仓鼠还会留着的;
    2. 是否具有重要性?即丢了很心疼的,需要符合 321 备份原则,即 3 份副本、2 种介质、1 个异地容灾;
    3. 是否具有时序性?即可以按时间序归档的,如摄影素材;
    4. 是否具有去重要求?即该文件夹内存在大量重复元素,如修改过 N 版的 PPT ;
    5. 是否可以对外共享?即该文件夹应该可以让别人直接拿 U 盘来拷,无需检查文件夹内容是否含有私人东西;
    6. 是否是容易获取的网络资源?即系统镜像、软件离线安装包等不值得 321 备份的文件,但又很大;
    7. 是否可以局域网共享?即影视资源文件夹等,可以直接在家里公开的;
    8. 是否包含少量大文件需要引用的情况?如某培训文件夹,会放报名材料、笔记 但同文件夹放网课录屏就太大了,不好备份,且做全量备份等时候没必要把视频多备份好几份;
    9. 是否会包含大量增量?即有打散需求,如论坛资源收集,会有大量子文件夹,需要按某规律打散以供缩短该目录索引速度和查找;
    10. 是否需要快速 /随机访问?即对存储介质有要求,如大量小文件需求 ssd ,而不是 hdd ;
    11. 是否是冷数据?即上传到云端也无所谓,取回时间可以接受;
    12. 是否需要多版本 /快照?即基本的数据保护和回档;
    13. 是否需要多设备同步?即 Resilio Sync 等软件同步;

    存储地点的特性如下:

    1. unraid 机械阵列:写入速度极慢( 30MB/s )但自动获得该存储盘的读取性能和 1 块盘的冗余保护,读取速度基本相当于单机械盘读取;
    2. unraid 机械 RAID0:仅用作 pt 下载;
    3. unraid 机械 16T 单盘:用作数据中转;
    4. qnap RAID10:读写速度适中,自带快照功能,且仅在有变化时自动快照;
    5. truenas MIRROR:开启去重,用于个人改来改去的文件和项目储存 自带压缩;
    6. truenas 单盘:自带压缩;

    又因为我做了两地三中心的同步 /备份策略 还用了软件辅助

    1. qnap 在老家 四盘 raid10 ,50M 外网 ipv4 ,目前主要用于个人照片、媒体类存储,和家人共享影视资源;
    2. unraid 在家里 9 盘 2.5G 本地访问 100M 外网 ipv6 ;
    3. truenas 在公司 双盘 mirror 2.5G 本地访问 50M 外网 ipv4 ;
    4. 腾讯云轻量北京 4C4G8M + 1TB 外置云盘(活动薅的);
    5. 每一台都能独立放下我个人的所有文件(除了腾讯云);
    6. 115 会员 100+T 容量,用于秒下种子,如 Manjaro 系统镜像就挺方便的秒下;
    7. cloudreve pro 用于管理 onedrive 分享;
    8. 天翼云盘会员 用于大文件分享,优点是会员费便宜,等于白送;
    9. 夸克云盘会员 用于监控视频加密储存,优点是网页端可以上传大文件;
    10. kodexplorer 用于管理本地文件,或者反向分享,即上传到我本地;
    11. gitea 用于管理代码仓库;
    12. dokuwiki 用于管理配置文件或笔记;
    13. seaweedfs 用于存储大量小文件,如爬虫爬取的东西;
    14. minio 用于应用往里存些东西,本地文件形式方便通过其他软件形式拿;

    大概排查了下目前还合理的安排:

    1. O 镜像软件:编号存储系统镜像、常用软件,如 Win 镜像、华为 ensp 软件等;
    2. thumb:存放 pt 下载所有资源的缩略图,按 pt 种子号的最后一个数字建子文件夹 如 thumb/0/456790 不然单一文件夹子文件夹太多;
    3. M 多媒体:编号存放个人拍摄的图片、视频素材、网课录屏、会议录音;
    4. d:下载文件夹 也用作文件中转站,存放所有尚未分类的文件夹;
    5. capture:监控文件夹 存储时间序的监控视频 仅本地一份 云端加密一份 不做额外复制;
    6. L 分享:按编号整理的分享文件夹,随意拷贝或者不加密传到云端分享;
    7. docker:备份容器文件,如 mongodb 、postgresql ;
    8. VM:备份虚拟机整机;
    9. 个人:个人文件、如学校相关材料;
    10. 工作:工作相关材料;
    11. 生活:业余爱好、如业余无线电、3D 打印等;
    12. device:某一设备的全量备份,用于随时恢复出厂设置然后 cp 过去;
    13. bilibili:存放某些视频的完整下载和字幕、弹幕等信息;
    14. Archive:存放 Readonly 的一些文件夹,或者过段时间就可以转为云端备份的文件夹,这个最难定义;

    但是会遇到的情况如下:

    1. 分类并不正交,如按照论文、专利、标准、竞赛、项目划分的话,项目里的论文就不能放在论文文件夹里吗,以后寻找的时候又找不到;
    2. 同一份文件到处都是,可能还有不同的版本,如省大创立项申报书同时出现在开题和中期和结题文件夹里,中间还经历过变动,又比如客户解决方案 PPT-V1 、V2 、V2 已交流带注释、V3 、VXX 最终版转 pdf 已发客户;
    3. 让别人给我传文件的时候,kodexplorer 好像不太安全,因为要给一个公用账号给别人,并且好像有漏洞能非授权访问其他文件;
    4. cloudreve pro 部署在腾讯云,文件走本地带宽低,但速度稳定,走 onedrive 带宽随机,但不从我服务器走流量(长时间走这种文件下载流量会占用我正常应用的带宽);
    5. 备份需求每次都在本地变出原始文件+加密文件。造成双倍占用,直到传到云端才能删除,需求一个 overlay 方案,希望可以直接挂在未加密文件夹的加密挂载点,直传云端;
    6. 某些全量备份恢复的时候提示 openssl 默认的 hash 算法已经从 md5 改成 sha256 了,旧有纯云端加密备份还要重新下载下来解压备份,希望有一个透明的代理能自动加解密,在尝试用阿里云盘小白羊改;
    7. 自己做了一套校验工具,可以根据多种 hash 判断文件是否完整,并且支援各类网盘的秒传,如百度、115 、夸克,但是分享文件的时候给秒传链接还是太超前了,很多人不会用油猴;
    8. 同步需求目前使用 Resilio Sync ,没买按需同步,感觉想换 Seafile 试试,不知道能不能更优雅的多设备同步文件;

    大家都是怎么解决这些需求(进行文件分类整理存放)的呢?
    目前我个人文件大概 4TB 左右 很少访问的文件大概 20TB 总阵列大小 200TB 左右 云端总空间 200TB 左右
    影视资源 100TB 左右 大都可以扔 纯粹是因为硬盘比较大还没扔

    21 条回复    2024-04-03 16:49:57 +08:00
    tyzandhr
        1
    tyzandhr  
       2023-04-15 00:36:46 +08:00 via Android   ❤️ 1
    感觉题主像是囤囤鼠……

    凡是能在网上找到的资源我是不可能存的,最多存个书签。我的个人文件,重要的证书什么的就多个云盘备份,不太重要的就 onedrive 。

    拍的照片上传前我都会审核一下,我觉得我这辈子再也不会看到它第二次的就直接删掉。
    Light1226
        2
    Light1226  
       2023-04-15 05:45:18 +08:00   ❤️ 1
    感觉题主像是囤囤鼠+1

    真正重要的东西只有一些证件的扫描件,200M 空间足以。

    其它的东西,什么时候需要,去下载,用完了就删掉。
    Light1226
        3
    Light1226  
       2023-04-15 05:45:52 +08:00   ❤️ 1
    感觉题主像是囤囤鼠+1

    真正重要的东西只有一些证件、重要文件的扫描件,200M 空间足以。

    其它的东西,什么时候需要,去下载,用完了就删掉。
    sakisaki
        4
    sakisaki  
       2023-04-15 06:27:40 +08:00 via Android   ❤️ 1
    有同样的困扰
    ltkun
        5
    ltkun  
       2023-04-15 06:45:26 +08:00 via Android   ❤️ 1
    虽然成本很高 但是其实是必须的 认为不需要的观点只是还没有意识到自建存储的必要性 四年前入门的 NAS 目前硬盘容量 100t 以上 机箱三五个
    kkwa56188
        6
    kkwa56188  
       2023-04-15 06:58:27 +08:00   ❤️ 1
    十分钟找到了就好.
    把那一套套的需求和疑问整理一遍都不止十分钟了, 更别说日常实践了. 人生苦短, 时间留给更重要的事情吧.
    SuperMild
        7
    SuperMild  
       2023-04-15 08:17:22 +08:00   ❤️ 1
    我做了一个文件管理工具, 基本的功能和想法是这样的:

    1. 分类问题, 我用了纯标签管理, 没有文件夹, 并且规定每个文件必须至少有两个标签,
    基于这样的基本理念, 做了一个很强大的标签系统, 详细说明看这里: https://github.com/ahui2016/localtags/wiki

    2. 版本问题, 我允许软件里有同名文件, 并且只要上传同名文件就自动生产备份, 用上传时间区分版本.

    3. 文件内容重复: 不允许, 软件里每一个文件都是唯一的.

    4. 校验(文件完整性), 用 sqlite 记录了每个文件的 sha256, 并且可以自动修复文件(利用备份功能)
    另外, 每次触发自动校验, 只校验一小部分文件, 因此用户感觉不到校验卡顿.

    5. 备份功能: 采用单向同步备份. 因为双向备份很容易出错, 并且用户使用时还要逐一选中覆盖方向.
    使用单向备份后就方便了, 用户只需要点击备份按钮, 剩下的全自动, 不用处理冲突问题.

    6. 由于有备份功能, 又有自动的文件完整性校验, 因此我认为备份有两份就行, 两个硬盘同时坏掉的可能性已经很低了.
    另外, 我没有做云盘备份功能, 只做了本地备份.

    这个工具的最大特点是标签系统, 很强大, 可以让用户对文件分类有很充分的掌控. 但是也有很多缺点, 比如要求每个文件至少有两个标签, 如果不这样要求, 标签系统的威力就无法体现, 但这样要求, 使用时的心智消耗实在太大.

    ============

    上面说的工具我自用了几年, 最近在做一个新版(还没完成), 抛弃了标签系统, 另外新增了加密功能.

    新版允许用户新建多个仓库(文件夹), 每个仓库可以选择是公开或加密, 上传到加密仓库的文件会自动加密.
    vitaminx
        8
    vitaminx  
       2023-04-15 08:55:10 +08:00 via Android   ❤️ 1
    OP 这情况还好了!我现在想整理都啃不动!大杂烩几百 G 😂
    totoro625
        9
    totoro625  
       2023-04-15 09:35:30 +08:00   ❤️ 1
    同样的困惑+1 ,我做的没有楼主那么详细,管理的比较混乱,但是数据比较少,不到 1T

    1.分类
    按自己的使用习惯,工作文件分项目,项目版本手动加日期,旧版资料扔到一个 old 文件夹
    具体细节详见: https://imgur.com/a/cOq3ggP

    2.去重、归档、快照
    工作目录全是重复的副本,去重主要在备份的时候去重
    主要用 Restic 版本控制、去重、归档备份,数据备份主要备份这个
    其次通过 Seafile 同步数据,自带去重、文件历史记录
    最后兜底的是 Windows 自带文件历史记录功能+syncback 带回收站+WPS 数据同步+Drive SnapShot

    3.321 备份
    公司电脑 SSD+HDD
    公司 NAS ( J5105 PVE ) 2.5G 本地; 200mbps Tailscale ; FRP 腾讯云上海 8M + Oracle
    自己家 NAS ( J4125 PVE + DS120J ) 1G 本地; 100mbps NAT1 打洞 /IPv6 ; 200mbps Tailscale
    老家 NAS (树莓派+移动硬盘),计划加一个正经 NAS
    公有云:onedrive 等,主要通过自己家 NAS 上传

    4.分享、反向分享
    均为公司 NAS 上的 Seafile

    5.问题
    Seafile 所在 NAS 扩展性不佳,没有做快照备份,哪天炸了就没了
    文件存储重心都在公司,BOOM 可能性较大
    家庭无 IPV4 公网(只有随机的端口),办公无 IPv6 公网,套 CDN 价格太高
    Licsber
        10
    Licsber  
    OP
       2023-04-15 09:38:17 +08:00
    @tyzandhr #1 囤囤鼠没办法 就是喜欢收集一些东西 而且不信任互联网 说真的一些东西必须在本地 自己可管才觉得安心

    @Light1226 #2 证件扫描件 原件我都有备份 还专门找了档案盒来存放 另外我的 Scan 扫描文件夹里还放了购物小票啥的扫描件 想把经手的一切东西都电子化 然后不重要的物理扔掉 这样在超市买东西的时候很方便查看 X 月前的小票看价格

    @sakisaki #4 已经被困扰很久了 主要是存储空间日益增长 有很多时候在挪来挪去 很希望更大的带宽可以更快完成一些备份到云端 或者互相传文件的操作 所以折腾 nas 的同时也在折腾软路由 对多拨+负载均衡啥的都很在意

    @ltkun #5 怕的是虽然花了很高的成本 可是效率还是很低 只保证安全性那是没意义的 数据是使用才有价值 全部存起来然后使用效率很低违背了初衷

    @kkwa56188 #6 人生苦短 但上班时候做 PPT 偶尔记得一些素材找不到了会很难受 然后郁闷一整天 所以我又建了一个素材.pptx 的 PPT 专门把觉得以后可能用到的单页收集起来 可是又存在这个文件大小太大 检索效率低 多端不统一的问题

    @SuperMild #7 有想过去掉传统的目录-文件式文件管理 但是标签式对我来说还是有点乱 现在我只有种子和 paperless-ngx 上面的文档是有标签整理的 其他的依然是传统结构 并且重复的文件到处都是这个问题 我在尝试使用链接来解决 目前主要是 win 上用 在尝试用域名 lnk 的方式建快捷方式 指向一个统一的 smb 存储地址

    @vitaminx #8 几百 G 的个人文件 感觉分类都不好分类 主要是一个文件夹下的文件也有重要性排行 比如班级临时收集的表格文件 很难和班级通讯录一样归类在班级文件夹里

    呜呜呜 太难了 虽然说事情的复杂度是与生俱来的 可是实在找不到方法来控制复杂度 现在好多新文件我都是按时间序整理 如 230415-XXX 看起来更有顺序了 可是检索效率还是很低 文件都如此 就更不用说图片的检索效率了
    Licsber
        11
    Licsber  
    OP
       2023-04-15 09:45:31 +08:00
    @totoro625 #9 我梳理了下我主要的需求点目前可以先做选择性同步 然后干脆就不管文件大小和类型 全部按项目来分类 目前主要是 linux 的 smb 服务器 所以 mklink 好像没法用 只能是 ln -s 然后 smb 开启 follow links
    我现有的方案把同步文件夹全量同步 然后文件大小比较大的都会独立出去单独编号 在同步的文件夹里引用那个编号 导致了文件两边管理比较混乱 不太容易进行归档 (归档还是要同时把同步文件夹里和它引用的如媒体文件放在一个文件夹最终归档
    SuperMild
        12
    SuperMild  
       2023-04-15 09:56:05 +08:00   ❤️ 1
    @Licsber 我现在新版抛弃了标签系统, 然后每个文件增加两个属性: 备注 和 关键词.

    其中关键词并没有做特殊处理, 就是一个普通的字符串, 事实上其实是备注 1, 备注 2 两个属性, 都是为了有个地方可以写备注, 方便日后搜索.

    这样, 新文件如果文件名不够信息量的, 可以在备注里补充信息.

    旧文件就每个周末找半个小时到一个小时, 一边听音乐一边整理, 也是一种放松.
    Licsber
        13
    Licsber  
    OP
       2023-04-15 10:16:32 +08:00
    @SuperMild #12 确实文件的文件名有时候表达不了所有信息 需要增加额外的元信息
    hhhh 确实 我现在就在整理文件 得周期性的维护整理 不然还是乱
    wemac
        14
    wemac  
       2023-04-15 13:50:56 +08:00
    有同样的困扰+1
    wemac
        15
    wemac  
       2023-04-15 14:42:34 +08:00
    @totoro625 你这个灵活简洁一些
    sleepingdog
        16
    sleepingdog  
       2023-04-15 20:28:14 +08:00   ❤️ 1
    我今天也提了类似的问题,有两位老哥给了回答你参考下~
    https://www.v2ex.com/t/932774#reply2
    sakisaki
        17
    sakisaki  
       2023-04-15 22:45:28 +08:00 via Android   ❤️ 1
    我的做法和楼主类似。
    找文件靠翻文件夹,找不到只能搜索。
    图片去重的话可以依靠专门的软件对比相似度。
    现在的互联网下仓鼠党应该是优势,因为网上的东西不知道什么时候就被删了。
    Licsber
        18
    Licsber  
    OP
       2023-04-15 23:55:03 +08:00
    @sleepingdog #16 已部署 seafile pro 准备试用一段时间

    @sakisaki #17 翻文件夹主要问题就是不正交 但是正交了会导致使用效率下降 hhh 也是取舍
    仓鼠是没办法的 丢东西给我的难受更大 那就只能仓鼠
    qztx
        19
    qztx  
       2023-04-16 09:29:38 +08:00 via Android
    在自己电脑上可以用 listary 和 everything 快速找文件,双击 ctrl 就能搜索
    ellermister
        20
    ellermister  
       226 天前
    @Licsber

    > 怕的是虽然花了很高的成本 可是效率还是很低 只保证安全性那是没意义的 数据是使用才有价值 全部存起来然后使用效率很低违背了初衷

    非常认同这句话。

    我也是囤囤鼠,没有你做的那么细致,但是和你遇到了同样的问题;各种分类规则都有,导致找不到文件。有时候像一股脑去给他分类清楚,搞一天也没分类几个文件……

    另外比起安全性同步灾备我没有那么多需求,很多文件都是我自己受不了给他 一股脑删除了。

    我更希望有基于 Linux/docker 运行 的类似 everything 的程序,即使分类错误也可以轻松让我根据模糊搜索找到想要的文件。但目前似乎没有,你有经验吗?
    Licsber
        21
    Licsber  
    OP
       226 天前
    @ellermister #20 目前检索效率还算可以

    按照类别/获取途径分类 然后不便分类的东西全按照时间序放着
    找的时候基本能命中第一个分类 然后事件可以命中后者
    比如 某某采购项目 就会放在
    架构角色/部门名称/采购/2024/240101-XXX 项目采购/Timeline/240102-立项系统信息
    这里 然后就比较好搜索

    兜底途径是 find . -name '*'
    再兜底途径是 QNAP 自带的 Qsirch
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1211 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 18:24 · PVG 02:24 · LAX 10:24 · JFK 13:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.