LJason

LJason

野生程序猴子
twitter
github
nintendo switch
steam
bilibili
email

ラズベリーパイを使いこなす 02 —— ダウンローダーの構築

Aria2 については自分で Google してください。ここでは使用方法のみを説明します。

更新#

Docker を使用して Aria2 をインストールします:

git clone --depth=1 https://github.com/LJason77/docker-aria2-with-webui.git
cd docker-aria2-with-webui/
docker build -t aria2 .
docker run -d --name aria2 --restart always --network host -v /mnt/downloads:/data aria2

具体的な使い方はプロジェクトを参照してください:docker-aria2-with-webui

古いブログ#

Aria のインストール#

リポジトリにある aria2 のバージョンが古すぎるため、手動でコンパイルしてインストールします:

まず、ソースコードを取得します:

git clone --depth=1 https://github.com/aria2/aria2.git

次に、関連する依存関係をインストールします:

apt-get install -y libgnutls-deb0-28 nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev pkg-config libgpg-error-dev libgcrypt20-dev libssl-dev libexpat1-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool

ビルドに必要な設定スクリプトやその他のファイルを生成します:

autoreconf -i

次に、aria2 の設定を開始します:

./configure

設定が完了したら、aria2 をコンパイルします:

make

コンパイルが完了したら、実行可能ファイルは src/aria2c にあります。その後、単体テストを実行します:

make check

終了後、インストールできます:

sudo make install

aria2 の設定#

Aria2 の設定ファイルフォルダを作成します:

sudo mkdir /etc/aria2

セッションと設定ファイルを作成します:

sudo touch /etc/aria2/aria2.session
sudo touch /etc/aria2/aria2.conf

/etc/aria2/aria2.confを編集します:

## ファイル保存関連

# ファイル保存ディレクトリ
dir=/mnt/storage/download
# ディスクキャッシュを有効にする, 0はキャッシュを無効にする, 1.16以上のバージョンが必要, デフォルト:16M
disk-cache=32M
# 中断したダウンロードの再開
continue=true

# ファイルの事前割り当て方式, ディスクの断片化を効果的に減少させる, デフォルト:prealloc
# 事前割り当てに必要な時間: none < falloc ? trunc < prealloc
# fallocとtruncはファイルシステムとカーネルのサポートが必要
# NTFSではfallocを使用することをお勧めします, EXT3/4ではtruncをお勧めします, MACではこの項目をコメントアウトする必要があります
#file-allocation=falloc

## ダウンロード接続関連

# 最大同時ダウンロードタスク数, 実行時に変更可能, デフォルト:5
#max-concurrent-downloads=5
# 同一サーバー接続数, 追加時に指定可能, デフォルト:1
max-connection-per-server=15
# 全体のダウンロード速度制限, 実行時に変更可能, デフォルト:0(制限なし)
#max-overall-download-limit=0
# 単一タスクのダウンロード速度制限, デフォルト:0(制限なし)
#max-download-limit=0
# 全体のアップロード速度制限, 実行時に変更可能, デフォルト:0(制限なし)
#max-overall-upload-limit=0
# 単一タスクのアップロード速度制限, デフォルト:0(制限なし)
#max-upload-limit=0
# IPv6を無効にする, デフォルト:false
disable-ipv6=true

# 最小ファイル分割サイズ, 追加時に指定可能, 値の範囲1M -1024M, デフォルト:20M
# size=10Mと仮定し、ファイルが20MiBの場合は2つのソースからダウンロード; ファイルが15MiBの場合は1つのソースからダウンロード
min-split-size=10M
# 単一タスクの最大スレッド数, 追加時に指定可能, デフォルト:5
split=10

## 進捗保存関連

# セッションファイルからダウンロードタスクを読み込む
input-file=/etc/aria2/aria2.session
# Aria2が終了する際にエラーのある未完了のダウンロードタスクをセッションファイルに保存
save-session=/etc/aria2/aria2.session
# 定期的にセッションを保存, 0は終了時のみ保存, 1.16.1以上のバージョンが必要, デフォルト:0
save-session-interval=60

## RPC関連設定

# RPCを有効にする, デフォルト:false
enable-rpc=true
# すべてのオリジンを許可, デフォルト:false
rpc-allow-origin-all=true
# 外部アクセスを許可, デフォルト:false
rpc-listen-all=true
# RPCポート, デフォルトポートが使用されている場合のみ変更
# rpc-listen-port=6800
# 設定されたRPC認証トークン, v1.18.4で追加された機能, --rpc-userおよび--rpc-passwdオプションの代わり
#rpc-secret=<TOKEN>

## BT/PTダウンロード関連

# ダウンロードがトレント(.torrentで終わる)である場合、自動的にBTタスクを開始, デフォルト:true
#follow-torrent=true
# クライアントの偽装, PTが必要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# タスクが完了してもセッションを強制的に保存, デフォルト:false
# 新しいバージョンでは、タスクが完了した後も.aria2ファイルが保持されます
#force-save=false
# 以前のBTタスクを続行する際、再度検証する必要はない, デフォルト:false
bt-seed-unverified=true
# マグネットリンクのメタデータをトレントファイル(.torrentファイル)として保存, デフォルト:false
bt-save-metadata=true

次に実行します:

aria2c --conf-path=/etc/aria2/aria2.conf -D

何のメッセージも表示されなければ成功です。次に、起動時に自動起動を追加します:

sudo touch /etc/init.d/aria2c

追加します:

#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2c
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $network $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: aria2c RPC init script.
# Description: Starts and stops aria2 RPC services.
### END INIT INFO
USER=root
RETVAL=0
case "$1" in
    start)
        echo "Aria2サービスを開始しています..."
        aria2c --conf-path=/etc/aria2/aria2.conf -D
        echo "サービスの開始が完了しました。"
    ;;
    stop)
        echo "Aria2サービスを停止しています..."
        killall aria2c
        echo "サービスの停止が完了しました。"
    ;;
esac
exit $RETVAL

実行します:

sudo chmod +x /etc/init.d/aria2c
sudo apt-get -y install chkconfig
sudo chkconfig --add aria2c

nginx のインストール#

Nginx は非常に軽量な HTTP サーバーで、ラズベリーパイ上で Aria2 の Web 管理として非常に適しています。Nginx をインストールします:

sudo apt-get -y install nginx

サードパーティのプログラムをダウンロードします:

sudo rm -rf /var/www/html
sudo git clone --depth=1 https://github.com/ziahamza/webui-aria2.git /var/www/html

Nginx を起動します:

sudo /etc/init.d/nginx start

起動時に自動起動を追加し、/etc/rc.localを編集して 1 行追加します:

/etc/init.d/nginx start

ブラウザにラズベリーパイの IP を入力すれば、Aria2 を使用してダウンロードできます。

今では、リンクやトレントを学校や仕事の前、寝る前に投げ込むだけで、帰ってきたらダウンロードが完了しています。

大きなファイルをダウンロードする場合、以前のように一日中待機する必要はありません。

考えてみてください、コンピュータの消費電力はどれほどか、RaspberryPiによれば、第三世代のラズベリーパイの定格消費電力はわずか 4.0W で、非常に省エネです。

直接リンクで百度クラウドリソースをダウンロード(無効)#

悪名高い百度クラウドは、料金を支払わないとダウンロード速度を制限するのに本当にうんざりしています。本来は PCS を申請して API ポートを取得し、速度制限なしでダウンロードしたいと思っていました。

残念ながら、彼らはあなたの小さな考えを見抜いており、百度はすでに 13 年前に PCS の登録を閉じましたが、古いユーザーは影響を受けません(閉鎖の公告には理由がたくさん書かれていますが、実際にはみんなが速度制限なしで使用していたため、百度はお金を稼げなかっただけです)。

しかし、天は人を絶やさず、古いユーザーは影響を受けないため、私はなんとか PCS を見つけました。

百度網盤直接リンクシステム

ログインして、クラウドストレージ - マイアプリデータ - hgf_blog にファイルを置くと、ページにリストが表示され、ファイルをクリックすると直接リンクが得られます。その後、Aria2 でダウンロードできます。

Tampermonkey を使って百度クラウドリソースをダウンロード#

まず、Chrome ブラウザにTampermonkey拡張機能をインストールし、その後、百度網盤直接ダウンロード助手をインストールすれば完了です。チュートリアルは中の説明を参照してください。

百度云を開き、ファイルを選択すると、ダウンロード助手が表示されます。外部リンクダウンロード-リンクを表示-編集-単行を選択し、全て選択してリンクをコピーし、Aria2 に貼り付けてダウンロードできます。

注意:ファイル名が中国語の場合、Aria2 でダウンロードすると文字化けする可能性があります。百度クラウドで名前を変更するか、リンクの後に --out = ファイル名を追加してください。具体的には Aria2 のダウンロード画面に説明があります。

定時制限#

私は昼間は学校にいて、夜に帰宅します。ネットに影響を与えないように、昼間は全速でダウンロードし、夜は定時で制限したいと思います。/var/spool/cron/crontabs/rootを編集し、以下を追加します:

0 19 * * * curl http://127.0.0.1:6800/jsonrpc -H "Content-Type: application/json" -H "Accept: application/json" --data '{"jsonrpc":"2.0","id":1,"method":"aria2.changeGlobalOption","params":[{"max-overall-download-limit":"300K","max-overall-upload-limit":"10K"}]}'
30 23 * * * curl http://127.0.0.1:6800/jsonrpc -H "Content-Type: application/json" -H "Accept: application/json" --data '{"jsonrpc":"2.0","id":1,"method":"aria2.changeGlobalOption","params":[{"max-overall-download-limit":"0","max-overall-upload-limit":"0"}]}'

最初の行は 19:00 にダウンロード速度を 300K、アップロード速度を 10K に制限することを示しています。2 行目は 23:30 にダウンロードとアップロード速度を両方とも 0(0 は制限なし)にすることを示しています。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。