寻求一个文件存储 模型设计思路

2020-09-30 17:19:24 +08:00
 SjwNo1
大佬们帮忙想想思路,自己想了几个都不是很好
需求条件:
1. 设计上: 文件夹理论上可以无限嵌套,当前路径文件夹和文件并存
2. 功能上:可以统计某个文件夹下文件 /文件夹数量等信息

我的想法:
每个文件夹带 parent_id,存储的文件和文件夹 id 关联, 存在的问题是层级很深的情况下,想要统计文件信息很麻烦,现在想优化但是无从下手了。。
2838 次点击
所在节点    MySQL
8 条回复
DoUSeeMe
2020-09-30 17:27:03 +08:00
这种?
folder_1
- folder_1_folder_1
- folder_1_folder_1_folder_1
...
- folder_1_folder_1_file_1
- folder_1_file_1
Jooooooooo
2020-09-30 17:29:11 +08:00
不如直接研究下 linux 那种 inode 的做法
hakono
2020-09-30 17:41:29 +08:00
这种做法坑太多了,你这样搞,文件夹有几层就得运行几次 sql 查询才能最终定位到需要的项目

还不如像 s3 那样,路径加文件名的完整路径本身作为一个字段, 即直接把 /folder1/folder2/file.txt 这串字符串存进字段里,知道完整路径能很快查出来
也支持一定的模糊查询,不过速度应该不是非常快
laminux29
2020-09-30 17:53:03 +08:00
通过对你水平的猜测,我不建议你自己去做文件系统的模型设计,先不说这对学识需求有多高的门槛,就算理论知识你全懂,在时间上也不划算。

如果你仅仅只是要存储文件,我建议你针对你们的需求,选择一款合适的文件系统,并且有 api 的那种,你们的系统通过文件系统的 api,对接或集成,应该能满足你们系统的大部分需求。

如果是要做一整套存储系统,现在有很多针对文件的存储数据库,以及缓存系统等,你们都可以先分析一下这些可白嫖的组件,功能够不够用。
est
2020-09-30 17:59:34 +08:00
s3 那种你看起来有路径,其实就是直接写死的 "/a/b/c/d" 这种 字符串。文件存储就变成了 key-value 。其中 key 为路径,value 就是类似 inode 。

要遍历某个路径下的所有文件,就是个前缀匹配
wuliaoshixia
2020-09-30 18:02:11 +08:00
用 minio 香吗?
SjwNo1
2020-09-30 18:17:15 +08:00
谢谢各位
des
2020-09-30 18:18:47 +08:00
树形结构直接闭包表

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/711952

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX