• 请不要在回答技术问题时复制粘贴 AI 生成的内容
azuginnen
V2EX  ›  程序员

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

  •  
  •   azuginnen · Sep 9, 2014 · 7493 views
    This topic created in 4296 days ago, the information mentioned may be changed or developed.
    是这样的,楼主本地建立了一个 1G 的 truecrypt 加密卷。传到百度网盘上去。

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

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

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

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

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

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

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


    @txlty 我本地开emule,百度拖不动呀。emule可能有ipblock.list ,之前迅雷吸血。。。
    binux
        16
    binux  
       Sep 9, 2014
    LZ 别猜了,搜搜看,算法都写出来了
    linxhappy
        17
    linxhappy  
       Sep 9, 2014
    需要一定的时间吧
    ninewan
        18
    ninewan  
       Sep 9, 2014
    @azuginnen 我之前没表达好,是基于MD4的,是9500KB分块,每块md4
    nanpuyue
        19
    nanpuyue  
       Sep 9, 2014
    这种大型网盘应用不搞hash简直是找死。
    yangff
        20
    yangff  
       Sep 9, 2014 via Android
    sigh
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2679 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 11:29 · PVG 19:29 · LAX 04:29 · JFK 07:29
    ♥ Do have faith in what you're doing.