Obter ficheiros como mega.co.nz

Hoje verifiquei. mega.co.nz e estou entusiasmado com algumas características. por exemplo, na página de download ele irá baixar arquivos no navegador e depois que decriptá-los com javascript.

por exemplo, veja esta ligação para obter um ficheiro png:

Https://mega.co.nz/#! 7JRgFJzJ!efpjgwuphyczlexy19ex82nuwfs4sr_dg4jxdeclh4

Neste link irá iniciar o download dentro do navegador. eu verifiquei a página da rede no elemento inspeccionar ele irá transferir partes do ficheiro com o AJAX depois que completou todas as partes do arquivo, irá salvar todos eles em um arquivo no computador automaticamente!

Quero saber o que eles fazem? você pode explicar ou ligar para algum recurso sobre baixar arquivos dentro do navegador como esse?

também pode fazê-lo apenas com javascript ou deve usar alguns plugins flash ou algo assim?

Author: Amir Molaa, 2013-04-14

3 answers

Mega usa vários métodos diferentes para fazer isso: (a partir de 27 de Novembro de 2013)

  1. Filesystem API (Chrome/Firefox Extension polyfill)
  2. Adobe Flash SWF Filewriter (Old browsers fallback)
  3. BlobBuilder (IE10/IE11)
  4. extensão MEGA Firefox (obsoleta)
  5. Arraybuffer / Blob (na memória) + a [download] (para navegadores que suportam um [download])
  6. MediaSource (solução experimental de streaming)
  7. Blob armazenado no armazenamento IndexedDB + a [download] (Firefox 20+, melhoria do método de Blob na memória)

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

 91
Author: roberto, 2013-11-27 23:00:30

Uma implementação básica de downloader multipart in-browser usando Blob e URL APIs é trazida para aqui . Ele transfere um arquivo em 4 pedidos simultâneos e mostra o progresso também. Por favor, note que parece que a configuração do cabeçalho range pode não ser uma boa ideia nos pedidos do XHR, dê uma vista de olhos a este tópico.

Ao descarregar:

While downloading

Após a transferência:

After the download

Outro tópico interessante seria: implementando a funcionalidade de pausa / retomada do Mega. A API XHR dos navegadores atuais não oferece essa capacidade, então a única chance que você tem é fazer o download de vários pedaços pequenos e desistir da parte baixada de seus pequenos pedaços, da maneira que parece ser feito no Mega também. Mas fetch o recurso de streaming pode ser usado para esse propósito, eu não explorei isso ainda bem o suficiente, mas está documentado {[[24]}aqui . [3] Btw, dê uma olhada nestes incríveis
 3
Author: Ebrahim Byagowi, 2017-12-20 09:51:55

Para aqueles que encontraram esta questão à procura de uma receita real para obter uma ligação no modo de texto aqui está um programa python simples que usa o mega.py módulo (instale-o com sudo pip install mega.py):

import sys
import getpass
#install the module with: 'sudo pip install mega.py'
from mega import Mega

email = '[email protected]'
password = getpass.getpass(prompt='Mega password for {}:'.format(email))

mega = Mega({'verbose': True})
m = mega.login(email, password)
m.download_url(sys.argv[1])

O programa funciona com o python 2.7 e leva o URL do mega.nz link.

getpass é usado para inserir a senha de forma segura na consola, a fim de evitar armazenar a senha no script-se você estiver confortável hardcoding the password then set it in line # 7.

megatools

Na maioria dos pacotes Linux/posix, poderá instalar megatools a partir de repositórios normais, ou seja

No ubuntu / debian:

apt install megatools

Em MacOS:

brew install megatools

Uma vez instalado, irá encontrar uma série de utilitários da linha de comandos, entre os quais:megadl que pode baixar ambos os arquivos compartilhados e seus próprios arquivos. Para mais pormenores, ver megadl -h.

 3
Author: ccpizza, 2018-08-28 21:11:49