下载mega.co.nz等文件

今天我检查了mega.co.nz,我对一些function感到兴奋。 例如在下载页面,它将在浏览器上下载文件,然后用javascript解密。

例如看到这个链接下载一个PNG文件:

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

在这个链接中它将开始在浏览器内下载。 我检查了检查元素中的networking标签,它将使用AJAX下载文件的一部分,然后完成文件的所有部分,将它们全部自动保存在计算机上的一个文件中!

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

也可以做到这一点只有JavaScript或应使用一些Flash插件或类似的东西?

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

  1. 文件系统API (Chrome / Firefox扩展插件)
  2. Adobe Flash SWF Filewriter(旧浏览器后备)
  3. BlobBuilder (IE10 / IE11)
  4. MEGA Firefox扩展(不build议使用)
  5. Arraybuffer / Blob(在内存中)+ a [download] (对于支持[download]的浏览器)
  6. MediaSource (实验性stream媒体解决scheme)
  7. 存储在IndexedDB存储中的Blob + [下载] (Firefox 20+,改进了内存中的Blob方法)

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

对于那些发现这个问题寻找一个实际的食谱下载一个链接文本模式这里是一个简单的python脚本,使用mega.py模块(安装与sudo pip install mega.py ):

 import sys import getpass #install the module with: 'sudo pip install mega.py' from mega import Mega email = '_your_megamail_@domain.com' password = getpass.getpass(prompt='Mega password for {}:'.format(email)) mega = Mega({'verbose': True}) m = mega.login(email, password) m.download_url(sys.argv[1]) 

getpass用于在控制台中安全input密码,以避免将密码存储在脚本中 – 如果您对密码进行了硬编码,请将其设置在#7行中。

该脚本使用Python 2.7,并采取mega.nz链接的URL。