根据我查找的资料,以及自己做种目前知道的信息是
种子文件会把完整的文件分块,每块对应一串哈希值,并且记录文件结构树,文件大小,文件名
但是无法通过种子文件拿到单个文件的完整哈希值
那么网盘离线下载的时候,他是需要得到单个文件的哈希值来判断服务器中有没有吧?
初次遇到该磁力/种子的时候他可以在服务器完成下载后记录该磁力/种子对应哪些文件没问题
可是不同种子中重叠的文件应该很多,但115基本都能离线,那么在这种情况下
B种子80%的文件在已经离线成功过的A种子中,他不可能把B种子的文件再全部下载下来然后计算单个文件的哈希值,然后记录入库吧?
这样做我觉得服务器的压力太大了,但不这样搞,他是怎么知道B种子中每个文件的哈希值的?
或者是压根没使用整体哈希对比,比如单独对文件进行多种分块策略的哈希计算,然后记录下来?(感觉也离谱)
困扰了我很久了,希望有网盘从业者解答
补一张种子结构图(后边全是块哈希,没有其他任何信息)
很简单,种子里的文件在离线服务器都有,那么种子的META HASH + 文件下标, 就能作为唯一标识了,然后通过唯一标识就可以知道服务器有没有了
通过种子文件或磁力链接中的元数据信息来实现的
问题内容: 我已经到处寻找答案,但是似乎只能找到可以满足您需求的软件。有人知道如何在python中执行此操作吗? 问题答案: 我写了一段python代码,根据 .torrent文件 中的内容验证 下载文件 的哈希值。假设您要检查下载是否损坏,则可能会发现此功能有用。 __ 您需要bencode包才能使用它。Bencode是.torrent文件中使用的序列化格式。它可以封送列表,字典,字符串和数字,
问题内容: 我有一个表单(HTML,PHP),允许最终用户上传文件,以使用上传文件(特别是.csv)中的记录来更新数据库(MySQL)。但是,在phpscript中,我只能获取文件名,而不能获取特定文件的完整路径。由于这个原因,fopen()失败。谁能让我知道如何找到完整的路径? HTML代码: PHP脚本: 问题答案: 引用 客户端 上的文件名。要在 服务器端 获取文件名(包括完整路径),您需要
我正在使用BCryptPasswordEncoder使用spring security。现在对于更改密码,我需要做的是比较用户提供的现有密码和DB值。 但是由于salt是由动态生成的,所以每次我从下面的方法得到不同的散列值,并且不一定会与我的DB值匹配。 解决这个问题的办法是什么?我能识别用于我的DB字段的盐并在上面的方法中使用相同的盐吗?
问题内容: 我有敏感文件要下载给用户,每个用户只能 下载 给定文件一次。如果下载失败,我希望允许重新下载,但不允许其他方式。 仅仅依靠在服务器上记录/处理文件下载 请求 是不够的-我需要确定性地知道文件何时完成以及在客户端是否就位,因为我的许多用户都在频繁掉线的环境中工作。 最有效的方法是,浏览器从“另存为…”对话框中暴露出一个“文件已保存”事件,该事件可能会链接到下载页面上的JavaScript
问题内容: 我使用了hashlib(在Python 2.6 / 3.0中代替了md5),如果我打开一个文件并将其内容放入函数中,它就可以正常工作。 问题在于非常大的文件,其大小可能超过RAM大小。 如何在不将整个文件加载到内存的情况下获取文件的MD5哈希? 问题答案: 将文件拆分为8192字节的块(或128字节的其他倍数),然后使用连续将其送入MD5 。 这利用了MD5具有128字节摘要块(819
<!doctype hibernate-mapping PUBLIC“-//hibernate/hibernate Mapping DTD 3.0//en”“http://hibernate.org/DTD/hibernate-mapping-3.0.DTD”>