V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
azuginnen
V2EX  ›  程序员

百度网盘貌似没有用到文件 hash 索引技术啊

  •  
  •   azuginnen · 2014-09-09 15:42:11 +08:00 · 6492 次点击
    这是一个创建于 3521 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是这样的,楼主本地建立了一个 1G 的 truecrypt 加密卷。传到百度网盘上去。

    上传完毕后,在本地对刚才那个加密卷进行emule共享,获得一串ed2k值。

    换了一个百度网盘账号,离线下载填入ed2k值,竟然不能秒传,进度为 0% .

    问题来了,现在不是网盘都是用了秒传技术吗。根据我的理解,就是把一个文件hash了之后,新上传的时候对比sha256的值么。

    另外,据说(dropbox),hash冲突会比内存什么电子迁移概率还小,即完全没必要考虑冲突的问题啊。
    20 条回复    2014-09-09 22:06:38 +08:00
    zhujinliang
        1
    zhujinliang  
       2014-09-09 15:52:30 +08:00
    百度用的hash算法不一定跟ed2k的一样,不同的哈希算法,无法比较是否一样
    azuginnen
        2
    azuginnen  
    OP
       2014-09-09 15:58:33 +08:00
    @zhujinliang 但是很多视频资源你一个ed2k放进去,他就瞬间下载完成了。

    这么说来,他应该是存一张 ed2k -> 文件的映射表,如果文件是客户端上传的,就没有ed2k属性值了。
    shyrock
        3
    shyrock  
       2014-09-09 16:03:25 +08:00
    嗯,我理解百度是可以秒传的,不过lz的测试用例没有通过是个问题。
    azuginnen
        4
    azuginnen  
    OP
       2014-09-09 16:03:38 +08:00
    机制如楼主,不信这个邪,换了个账号,在客户端上传,明显一开始有个时延,(偷偷的做了散列),结果又上传上去!!!
    rrfeng
        5
    rrfeng  
       2014-09-09 16:25:33 +08:00
    新上传的文件马上再传可能有个延迟吧
    Saaee
        6
    Saaee  
       2014-09-09 16:43:57 +08:00
    用文件前256长度的MD5试试
    ninewan
        7
    ninewan  
       2014-09-09 16:47:16 +08:00
    ed2k 用的是md4
    hging
        8
    hging  
       2014-09-09 17:21:39 +08:00
    =.= 楼主累么. 这么研究在图什么....
    forresty
        9
    forresty  
       2014-09-09 17:27:02 +08:00
    楼主的意思是上传到百度网盘的文件就得自动被分享到 ED2K 网络吗?怎么可能这么设计。
    imn1
        10
    imn1  
       2014-09-09 17:33:07 +08:00
    隔段时间再试
    yangg
        11
    yangg  
       2014-09-09 17:49:31 +08:00
    lz 你1G的文件读hash也要时间啊
    otakustay
        12
    otakustay  
       2014-09-09 18:03:52 +08:00
    另外有几种可能

    1. 当一个资源访问不多时,它被放在更慢的存储设备上,当访问频繁时则被换到更快的设备比如SSD上,只有交换出来的这些大家频繁要用的资源才支持秒传,这可能是出于访问少的文件是私人文件的考虑
    2. 秒传要更新N多机器上的N多配置,要等文件推送到N多的CDN上,有时间间隔不会这么快生效
    txlty
        13
    txlty  
       2014-09-09 18:06:13 +08:00
    你让百度从ed2k地址下载一次。下次同样地址再下载就是秒下了。
    azuginnen
        14
    azuginnen  
    OP
       2014-09-09 18:21:07 +08:00
    楼主研究的一种终极压缩算法,以带宽100M为例(总有一天会实现的吧),解压缩时间相当于 文件大小/10M 每秒,而空间占用比跟Huffman 编码比性能提升大的去了,理论上可以达到正无穷。。。楼主太机智了(逃
    azuginnen
        15
    azuginnen  
    OP
       2014-09-09 18:24:44 +08:00
    @ninewan 没有,貌似也是sha256,9.28M分块hash,每块hash串起来再一次hash

    @otakustay 这个应该是正解。或者我猜想可能是下的人多,会打到缓存


    @txlty 我本地开emule,百度拖不动呀。emule可能有ipblock.list ,之前迅雷吸血。。。
    binux
        16
    binux  
       2014-09-09 18:51:50 +08:00
    LZ 别猜了,搜搜看,算法都写出来了
    linxhappy
        17
    linxhappy  
       2014-09-09 18:56:59 +08:00
    需要一定的时间吧
    ninewan
        18
    ninewan  
       2014-09-09 21:50:29 +08:00
    @azuginnen 我之前没表达好,是基于MD4的,是9500KB分块,每块md4
    nanpuyue
        19
    nanpuyue  
       2014-09-09 22:05:16 +08:00
    这种大型网盘应用不搞hash简直是找死。
    yangff
        20
    yangff  
       2014-09-09 22:06:38 +08:00 via Android
    sigh
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2337 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:10 · PVG 15:10 · LAX 00:10 · JFK 03:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.