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

2013-03-08 21:49:02 +08:00
 egen
https://mega.co.nz/#!M5FVzIxZ!ExWD6iJVoIO_vmJYuBvFrk0bW7MYmXfYnjDUea2Nhbc

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

文件加载可以用HTML5的FileBlob
muzuiget
2013-03-09 00:03:59 +08:00
现在重新试了一下,又好了。
badec
2013-03-09 00:10:47 +08:00
磁性链接?
ljbha007
2013-03-09 01:27:09 +08:00
真巧 刚才看到谷歌IO讲这个问题
主要是用了两个东西一个是
XmlHttpRequest2里边的resposeType="arraybuffer"
一个是
a标签的download属性
egen
2013-03-09 11:28:14 +08:00
@ljbha007
是这个东西了
ljbha007
2013-03-09 12:25:18 +08:00
@egen
最关键是window.URL.createObjectURL这个方法 可以把js里边的blob内容转换成可以下载的资源链接
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
2013-03-11 12:36:13 +08:00
@ljbha007
多谢,受益匪浅
lyric
2013-03-11 13:25:16 +08:00
blob: 真好用
chigco
2015-01-10 16:18:31 +08:00
@ljbha007 例子丢失了?
kmahyyg
2016-12-17 18:02:26 +08:00
搭车同问 peer5 的原理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/62361

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX