网盘中的文件在服务器上面是如何存储的

cankoor 发布于 2014/04/15 18:02
阅读 1K+
收藏 0
 像百度网盘这样的具有目录层级的网盘在网盘上是如何存储文件的?是为每个用户新建真实的文件夹还是其他怎么实现的?
加载中
0
x
xiumuzjq

通过键的设计

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

Hadoop里面有介绍 HDFS

c
cankoor
其实我是不明白服务器上面是如何管理目录的,是真的为每个关系单独建文件夹,还是所有文件放在同一层,但是通过其他方法来表示目录结构的?
0
罪恶的花生
罪恶的花生

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

0
魏涛
魏涛

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

0
haitaosoft
haitaosoft

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

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

返回顶部
顶部