V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
egen
V2EX  ›  问与答

有人介绍一下MEGA下载的原理么?

  •  
  •   egen · 2013-03-08 21:49:02 +08:00 · 21563 次点击
    这是一个创建于 4069 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://mega.co.nz/#!M5FVzIxZ!ExWD6iJVoIO_vmJYuBvFrk0bW7MYmXfYnjDUea2Nhbc

    比如上面的链接,点下载后没有弹出下载窗口,而是跑进度条,跑完才弹出下载文件的窗口
    这个原理是什么?难道缓存在浏览器里面? 如果是缓存文件大的话怎么办呢?
    16 条回复    2016-12-17 18:02:26 +08:00
    exoticknight
        1
    exoticknight  
       2013-03-08 22:24:15 +08:00
    估計是HTML5……
    muzuiget
        2
    muzuiget  
       2013-03-08 23:01:49 +08:00
    提示安装扩展,不安装下不了。估计是扩展在后台接管了并开始下载,然后在页面里更新进度,蛋疼。
    wzxjohn
        3
    wzxjohn  
       2013-03-08 23:31:58 +08:00
    @egen 打开Chrome的开发者控制台你就知道是个什么过程了。全程清晰显示。。。
    @muzuiget 你一定是用了什么山寨浏览器吧。。。Chrome完全不需要扩展。
    clww
        4
    clww  
       2013-03-08 23:35:10 +08:00
    话说html5的localstorage可以占满你的硬盘的,详见 http://filldisk.com
    muzuiget
        5
    muzuiget  
       2013-03-08 23:58:55 +08:00
    @wzxjohn 我用的是Firefox。
    est
        6
    est  
       2013-03-09 00:02:35 +08:00
    mega主要看点是客户端js实现二次加解密。文件传输很安全。

    文件加载可以用HTML5的FileBlob
    muzuiget
        7
    muzuiget  
       2013-03-09 00:03:59 +08:00
    现在重新试了一下,又好了。
    badec
        8
    badec  
       2013-03-09 00:10:47 +08:00
    磁性链接?
    ljbha007
        9
    ljbha007  
       2013-03-09 01:27:09 +08:00   ❤️ 1
    真巧 刚才看到谷歌IO讲这个问题
    主要是用了两个东西一个是
    XmlHttpRequest2里边的resposeType="arraybuffer"
    一个是
    a标签的download属性
    egen
        10
    egen  
    OP
       2013-03-09 11:28:14 +08:00
    @ljbha007
    是这个东西了
    ljbha007
        11
    ljbha007  
       2013-03-09 12:25:18 +08:00   ❤️ 1
    @egen
    最关键是window.URL.createObjectURL这个方法 可以把js里边的blob内容转换成可以下载的资源链接
    ljbha007
        12
    ljbha007  
       2013-03-09 12:37:36 +08:00
    try this
    http://www.carltheawesome.com/download.html
    本来是google IO上面一个人做的DEMO
    结果原来的链接http://html5-demos.appspot.com/static/a.download.html用不了了
    因为BlobBuilder的API被废弃了

    我给改了一下
    你注意下代码321行 那个就是用html5实现客户端下载的方法
    egen
        13
    egen  
    OP
       2013-03-11 12:36:13 +08:00
    @ljbha007
    多谢,受益匪浅
    lyric
        14
    lyric  
       2013-03-11 13:25:16 +08:00
    blob: 真好用
    chigco
        15
    chigco  
       2015-01-10 16:18:31 +08:00
    @ljbha007 例子丢失了?
    kmahyyg
        16
    kmahyyg  
       2016-12-17 18:02:26 +08:00 via Android
    搭车同问 peer5 的原理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3260 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 11:28 · PVG 19:28 · LAX 04:28 · JFK 07:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.