it-swarm.com.de

Laden Sie Dateien wie mega.co.nz herunter

Heute habe ich mega.co.nz überprüft und bin über einige Features aufgeregt. Auf der Download-Seite werden beispielsweise Dateien im Browser heruntergeladen und anschließend mit Javascript entschlüsselt.

unter diesem Link können Sie beispielsweise eine PNG-Datei herunterladen:

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

über diesen Link wird der Download im Browser gestartet. Ich habe die Netzwerkregisterkarte in Inspect Element angekreuzt. Teile der Datei werden mit AJAX) heruntergeladen. Nachdem alle Teile der Datei ausgefüllt wurden, werden sie automatisch in einer Datei auf dem Computer gespeichert.

ich möchte wissen, was sie tun? Können Sie eine Ressource zum Herunterladen von Dateien in einem solchen Browser erklären oder verlinken?

kann man das auch nur mit javascript machen oder sollte man einige flash plugins oder sowas benutzen?

83
Amir Molaa

Mega verwendet dazu verschiedene Methoden: (Stand: 27. November 2013)

  1. Filesystem API (Chrome/Firefox-Erweiterung polyfill)
  2. Adobe Flash SWF Filewriter (altes Browser-Fallback)
  3. BlobBuilder (IE10/IE11)
  4. MEGA Firefox Extension (veraltet)
  5. Arraybuffer/Blob (im Speicher) + a [download] (für Browser, die a [download] unterstützen)
  6. MediaSource (experimentelle Streaming-Lösung)
  7. Blob im IndexedDB-Speicher gespeichert + a [download] (Firefox 20+, Verbesserung gegenüber der In-Memory-Blob-Methode)

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

95
roberto

Eine grundlegende Implementierung eines mehrteiligen In-Browser-Downloaders unter Verwendung von Blob- und URL-APIs wird vorgestellt hier . Es lädt eine Datei bei 4 gleichzeitigen Anfragen herunter und zeigt auch den Fortschritt an. Bitte beachten Sie, dass das Setzen des Headers range im Allgemeinen keine gute Idee für XHR-Anfragen ist. Schauen Sie sich dieses Thema an.

Während des Herunterladens:

While downloading

Nach dem Download:

After the download

Ein weiteres interessantes Thema wäre die Implementierung der Pause/Resume-Funktionalität von Mega. Die XHR-API der aktuellen Browser bietet diese Funktion nicht. Die einzige Möglichkeit, die Sie haben, besteht darin, mehrere kleine Blöcke herunterzuladen und den heruntergeladenen Teil Ihrer kleinen Blöcke aufzugeben, wie es auch bei Mega der Fall zu sein scheint. Aber die Streaming-Funktion fetch kann für diesen Zweck verwendet werden. Ich habe das noch nicht gut genug untersucht, aber sie ist dokumentiert hier .

Übrigens, schauen Sie sich diese großartigen Projekte an:

4
Ebrahim Byagowi

MEGAcmd

Es gibt megacmd , die offizielle Befehlszeilenschnittstelle. Sie können es auch aus Quellen auf Github unter https://github.com/meganz/MEGAcmd erstellen

megacmd ist ein Wrapper für Mega SDK. Wenn Sie sich dazu entschließen, es selbst zu kompilieren, benötigen Sie dieselben Abhängigkeiten (unter Ubuntu) wie die unten aufgeführten für Mega SDK.

Einzelheiten zur Verwendung finden Sie im MEGAcmd-Benutzerhandbuch .

Mega SDK

Mega SDK, das mit den Schritten auf der Seite github kompiliert werden kann. Es enthält das Hilfsprogramm megacli, eine interaktive Shell zum Synchronisieren und Herunterladen/Hochladen.

## compilation steps for ubuntu
git clone --depth 1 https://github.com/meganz/sdk megasdk
cd megasdk
Sudo apt install libcurl4-openssl-dev  libc-ares-dev libssl-dev libcrypto++-dev  zlib1g-dev libsqlite3-dev  libfreeimage-dev libswscale-dev
autogen.sh
./configure
make -j 8  ## pass the number of CPUs you have to speed up compilation
Sudo make install

mega.py python module (veraltet)

Für diejenigen, die diese Frage auf der Suche nach einem Rezept zum Herunterladen eines Links im Textmodus fanden, ist hier ein einfaches python Skript, das das mega.py Modul verwendet (installieren Sie es) mit 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])

Das Skript arbeitet mit python 2.7 und übernimmt die URL des mega.nz-Links.

getpass wird zur sicheren Eingabe des Passworts in die Konsole verwendet, um zu vermeiden, dass das Passwort im Skript gespeichert wird - if Sie können das Kennwort problemlos fest codieren und dann in Zeile 7 eingeben.

megatools

Auf den meisten Linux/Posix-Boxen können Sie Megatools aus Standard-Repositorys installieren, d. H.

Unter Ubuntu/Debian:

apt install megatools

Unter MacOS:

brew install megatools

Nach der Installation finden Sie eine Reihe von Befehlszeilenprogrammen, darunter megadl , mit denen Sie sowohl freigegebene als auch Ihre eigenen Dateien herunterladen können. Sehen megadl -h für Details.

3
ccpizza