下载mega.co.nz等文件

Ami*_*laa 83 javascript flash download

今天我检查了mega.co.nz,我很兴奋一些功能.例如,在下载页面中,它将在浏览器上下载文件,之后用javascript解密它们.

例如,请参阅此链接以下载png文件:

https://mega.co.nz/#!7JRgFJzJ!efpJGWuPhYczLexY19ex82nuwfs4sR_DG4JXddeClH4

在此链接中,它将在浏览器中开始下载.我检查了检查元素中的网络选项卡,它将在完成文件的所有部分之后用AJAX下载部分文件,将它们全部保存在计算机上的一个文件中!

我想知道他们做了什么?你可以解释或链接到某些关于浏览器内部下载文件的资源吗?

也可以只使用javascript或应该使用一些Flash插件或类似的东西吗?

rob*_*rto 95

Mega使用几种不同的方法来做到这一点:(截至2013年11月27日)

  1. Filesystem API(Chrome/Firefox扩展polyfill)
  2. Adobe Flash SWF Filewriter(旧浏览器后备)
  3. BlobBuilder(IE10/IE11)
  4. MEGA Firefox扩展(已弃用)
  5. Arraybuffer/Blob(内存中)+ a [下载](适用于支持[下载]的浏览器)
  6. MediaSource(实验流媒体解决方案)
  7. 存储在IndexedDB存储中的Blob + [下载](Firefox 20+,对内存Blob方法的改进)

(来源:https://eu.static.mega.co.nz/js/download_6.js)


Ebr*_*owi 6

这里介绍了使用 Blob 和 URL API 的多部分浏览器内下载器的基本实现。它会根据 4 个并发请求下载文件并显示进度。请注意,似乎range对 XHR 请求设置标头通常不是一个好主意,请查看此主题

下载时:

下载时

下载后:

下载后

另一个有趣的主题是实现 Mega 的暂停/恢复功能。当前浏览器的 XHR API 不提供该功能,因此您唯一的机会是下载多个小块,然后放弃小块的下载部分,这似乎也是在 Mega 上完成的。但fetch流媒体功能可以用于此目的,我还没有对此进行足够深入的探索,但它已记录在此处

顺便说一句,看看这些很棒的项目: