5
回答
网盘中的文件在服务器上面是如何存储的
【腾讯云】校园拼团福利,1核2G服务器10元/月!>>>   
 像百度网盘这样的具有目录层级的网盘在网盘上是如何存储文件的?是为每个用户新建真实的文件夹还是其他怎么实现的?
<无标签>
举报
cankoor
发帖于4年前 5回/995阅
共有5个答案 最后回答: 4年前

通过键的设计

--- 共有 2 条评论 ---
xiumuzjq回复 @cankoor : 因为纯键值对模式读取速度要比树形目录快,所以大规模的数据存储就通过键值对实现。键也可以模拟树形结构,比如user文件夹下的index.txt文件,键名起为'user/index.txt'这完全可以,分割符‘’/‘,z只是一种预定,设计者本人知道就好,具体的键设计可以看键值NOsql redis这方面的书,我也是新手,一起进步哈~ 4年前 回复
cankoor不是很懂。如果可以,是否可以给我讲讲?或者给我点资料让我自己看看,因为我自己没找到什么材料。 4年前 回复

Hadoop里面有介绍 HDFS

--- 共有 1 条评论 ---
cankoor其实我是不明白服务器上面是如何管理目录的,是真的为每个关系单独建文件夹,还是所有文件放在同一层,但是通过其他方法来表示目录结构的? 4年前 回复

文件一个表,文件夹是一个表,文件夹有父子关系,文件通过文件MD5来识别是否重复,还有一个中间关联表,多对多的关系,差不多这样就可以实现简单的功能了。

user -> path -> file -> part,然后冗余备份。可以参考文件系统的结构。网盘和传统的文件系统没太大差异,只是其载体不一样。

实际文件表(校验码,相对路径,文件名)所有用户的文件,校验码(md5+crc32)相同的,只需要存一份,只有需要为冗余和传输需要才自动存多份

用户目录表,用户文件表(在用户的哪个目录下,对应的实际文件id),

顶部