今日、mega.co.nzをチェックし、いくつかの機能に興奮しています。たとえば、ダウンロードページでブラウザにファイルをダウンロードし、その後JavaScriptでファイルを復号化します。
たとえば、PNGファイルをダウンロードするには、次のリンクを参照してください。
https://mega.co.nz/#!7JRgFJzJ!efpJGWuPhYczLexY19ex82nuwfs4sR_DG4JXddeClH4
このリンクでは、ブラウザ内でダウンロードが開始されます。 inspect要素のネットワークタブをチェックしました。AJAXでファイルの一部をダウンロードします。その後、ファイルのすべての部分を完了し、コンピューター上の1つのファイルにすべてを保存します。
彼らが何をしているのか知りたいですか?そのようなブラウザ内のダウンロードファイルについて、いくつかのリソースを説明したり、リンクしたりできますか?
また、javascriptでのみそれを行うことができますか、いくつかのフラッシュプラグインなどを使用する必要がありますか?
Megaはこれを行うためにいくつかの異なる方法を使用します:(2013年11月27日現在)
BlobおよびURL APIを使用したマルチパートブラウザ内ダウンローダーの基本的な実装が、 here になりました。 4つの同時要求でファイルをダウンロードし、進行状況も表示します。 range
ヘッダーを設定することは、XHRリクエストでは一般的に良いアイデアではないようです。 このトピック をご覧ください。
ダウンロード中:
ダウンロード後:
もう1つの興味深いトピックは、Megaの一時停止/再開機能の実装です。現在のブラウザのXHR APIはその機能を提供していないので、複数の小さなサイズのチャンクをダウンロードして、小さなチャンクのダウンロードされた部分をあきらめることが唯一のチャンスです。しかし、fetch
ストリーミング機能はその目的に使用できますが、まだ十分に検討していませんでしたが、文書化されています here 。
ところで、これらの素晴らしいプロジェクトを見てください:
megacmd 、公式のコマンドラインインターフェイスがあります。 https://github.com/meganz/MEGAcmd のgithubのソースからビルドすることもできます
megacmd
はMega SDKのラッパーであり、自分でコンパイルする場合は、Mega SDKの場合と同じ依存関係(ubuntu上)が必要です。
使用方法の詳細については、 MEGAcmd User Guide を参照してください。
github ページの手順に従ってコンパイルできるMega SDK。同期およびダウンロード/アップロード用の対話型シェルであるmegacli
ユーティリティが含まれています。
## 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
テキストモードでリンクをダウンロードする実際のレシピを検索するこの質問を見つけた人のために、単純な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 = '[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])
このスクリプトはpython 2.7で動作し、mega.nzリンクのURLを取得します。
getpassは、パスワードをコンソールに安全に入力するために使用され、パスワードをスクリプト—パスワードをハードコーディングすることに慣れている場合は、7行目に設定します。
megatools
ほとんどのLinux/posixボックスでは、標準リポジトリから megatools をインストールできます。
apt install megatools
brew install megatools
インストールすると、多くのコマンドラインユーティリティが見つかります。その中には megadl
があり、共有ファイルと独自のファイルの両方をダウンロードできます。見る megadl -h
詳細については。