网盘通过磁力和种子离线下载的时候,是怎么获取单个文件的完整哈希值的?

根据我查找的资料,以及自己做种目前知道的信息是
种子文件会把完整的文件分块,每块对应一串哈希值,并且记录文件结构树,文件大小,文件名
但是无法通过种子文件拿到单个文件的完整哈希值

那么网盘离线下载的时候,他是需要得到单个文件的哈希值来判断服务器中有没有吧?
初次遇到该磁力/种子的时候他可以在服务器完成下载后记录该磁力/种子对应哪些文件没问题

可是不同种子中重叠的文件应该很多,但115基本都能离线,那么在这种情况下
B种子80%的文件在已经离线成功过的A种子中,他不可能把B种子的文件再全部下载下来然后计算单个文件的哈希值,然后记录入库吧?
这样做我觉得服务器的压力太大了,但不这样搞,他是怎么知道B种子中每个文件的哈希值的?
或者是压根没使用整体哈希对比,比如单独对文件进行多种分块策略的哈希计算,然后记录下来?(感觉也离谱)

困扰了我很久了,希望有网盘从业者解答
补一张种子结构图(后边全是块哈希,没有其他任何信息)

阅读 815
2 个回答
新手上路,请多包涵

通过种子文件或磁力链接中的元数据信息来实现的

很简单,种子里的文件在离线服务器都有,那么种子的META HASH + 文件下标, 就能作为唯一标识了,然后通过唯一标识就可以知道服务器有没有了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏