Obter ficheiros como mega.co.nz
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?
3 answers
Mega usa vários métodos diferentes para fazer isso: (a partir de 27 de Novembro de 2013)
- Filesystem API (Chrome/Firefox Extension polyfill)
- Adobe Flash SWF Filewriter (Old browsers fallback)
- BlobBuilder (IE10/IE11)
- extensão MEGA Firefox (obsoleta)
- Arraybuffer / Blob (na memória) + a [download] (para navegadores que suportam um [download])
- MediaSource (solução experimental de streaming)
- Blob armazenado no armazenamento IndexedDB + a [download] (Firefox 20+, melhoria do método de Blob na memória)
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:
Após a transferência:
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. Masfetch
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íveisPara 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
.