ubunt18.04 下 aria2 的下載與使用並實現百度雲大檔案的下載

qianyin925發表於2018-09-16

一、 工具介紹

1.1 aria2

Aria2 是一個命令列下輕量級、多協議、多來源的下載工具(支援 HTTP/HTTPS、FTP、BitTorrent、Metalink),內建 XML-RPC 和 JSON-RPC 使用者介面。其實直白的說就是一下載工具;

1.2 Chrome外掛: BaiduExporter

中文名稱:百度網盤助手,該外掛可以方便的把網盤的下載地址匯出到aria2/aria2-rpc,支援YAAW。也就是說它可以匯出一個下載地址,aria2 使用該下載地址就可以實現檔案下載;甚至一鍵匯出到 aria2 進行下載;

1.3 YAAW

借用 YAAW 並進行相應配置就可以連線到 aria2 檢視下載列表和進度。 aria2 是一個命令列工具而 YAAW 說白了就是 aria2 的一個圖形介面;YAAW 是 Chrome 的一個外掛,當然它也有 web 版本;

二、 Aria2的下載與使用
2.1 下載:兩種方式

直接從本地源中進行下載

$ npm install aria2
複製程式碼

下載原始碼進行編譯

# 解壓
$ tar zxvf aria2-1.34.0.tar.gz
# 進入壓縮目錄
$ cd /aria2-1.34.0
# 安裝
$ ./configure
$ make && make install
# 檢視 aria2 版本資訊:看是否成功安裝
$ aria2c -v
複製程式碼
2.1 使用說明: 兩種方式

方法一: 直接呼叫命令進下載

# 命令格式
$ aria2c -c -s10 -k1M -x16 -o "output.file" -d <下載檔案存放路徑>  <下載檔案地址>
# 例:我要下載 https://xxxx.com.xx/xx.png 檔案到 /home/qianyin/img 目錄下則有:
$ aria2c -c -s10 -k1M -x16 -o "output.file" -d /home/qianyin/img  https://xxxx.com.xx/xx.png
複製程式碼

方法二(推薦):編寫本地配置檔案來執行命令

  • 編寫命令配置檔案: aria2.conf

配置檔案路徑: /home/qianyina/下載/aria2/aria2.conf (具體配置存放路徑看個人喜好) 下面給出部分配置內容(也是本人當前使用的配置),在文章的末尾會給出更多的配置資訊; 配置檔案中 RPC 相關設定是為了使用 YAAW 所配置的,YAAW工具和命令列工具 aria2 是通過 RPC 進行通訊的;

## 檔案儲存相關 ##
# 檔案的儲存路徑(可使用絕對路徑或相對路徑), 預設: 當前啟動位置
dir=/home/qianyin/下載/aria2
# 斷點續傳
continue=true

## 下載連線相關 ##
# 同一伺服器連線數, 新增時可指定, 預設:1
max-connection-per-server=5
# 假定size=10M, 檔案為20MiB 則使用兩個來源下載; 檔案為15MiB 則使用一個來源下載
min-split-size=10M

## 進度儲存相關 ##
# 從會話檔案中讀取下載任務
input-file=/home/qianyin/下載/aria2/aria2.session
# 在Aria2退出時儲存`錯誤/未完成`的下載任務到會話檔案
save-session=/home/qianyin/下載/aria2/aria2.session

## RPC相關設定 ##
# 啟用RPC, 預設:false
enable-rpc=true
# 允許所有來源, 預設:false
rpc-allow-origin-all=true
# 允許非外部訪問, 預設:false
rpc-listen-all=true

## BT/PT下載相關 ##
# BT監聽埠, 當埠被遮蔽時使用, 預設:6881-6999
listen-port=51413
# 開啟DHT功能, PT需要禁用, 預設:true
enable-dht=false
# 種子交換, PT需要禁用, 預設:true
enable-peer-exchange=false
# 客戶端偽裝, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 當種子的分享率達到這個數時, 自動停止做種, 0為一直做種, 預設:1.0
seed-ratio=0
# 繼續之前的BT任務時, 無需再次校驗, 預設:false
bt-seed-unverified=true
# 儲存磁力連結後設資料為種子檔案(.torrent檔案), 預設:false
bt-save-metadata=true
複製程式碼
  • 編寫會話檔案:aria2.session

在上文配置檔案中我們對進度儲存的相關配置進行了相應配置,其中我們設定了會話檔案 aria2.session,在執行 aria2 啟動命令時發現若 aria2.session 檔案不存在時,執行 aria2 後程式將會結束無法在後臺執行;說白了就是在配置中我們設定了會話檔案 aria2.session, 若在本地不存在該檔案在後面執行 araia2 命令就有可能會失敗; 會話檔案路徑:/home/qianyin/下載/aria2/aria2.session (具體存放路徑看個人喜好)

  • 執行 aria2
# --conf-path 指定配置檔案路徑; -D 表示在後臺執行
$ aria2c --conf-path=/home/qianyin/下載/aria2/aria2.conf -D
複製程式碼
  • 檢視程式:檢視是否成功執行 aria2
$ ps -e | grep aria2
複製程式碼

三、Chrome外掛: BaiduExporter 安裝

  • 從GitHub原始檔中找到檔案:BaiduExporter.crx 進行下載( GitHub: github.com/acgotaku/Ba… )

  • 在瀏覽上開啟:chrome://extensions/ 並拖動下載的 BaiduExporter.crx 至瀏覽器進行安裝

  • 若拖動安裝失敗請看下是否忘記開啟了開發者模式;

  • 外掛使用:瀏覽器直接開啟登入百度雲,具體操作看圖:

    @import "./img/Peek 2018-09-16 11-13.gif"

  • 當然我們也可以使用外掛匯出下載連結然後新增到 aria2 的會話檔案同樣應該也能實現下載(當然我這裡只是猜測有興趣的可以嘗試嘗試)

四、YAAW 的下載

  在上文我們通過 aria2 成功實現了對百度雲檔案的下載,然而實際上我們並不確定 aria2 是否真的在進行下載,我們也並不清楚 aria2 的下載情況; YAAW 是 aria2 的一個影象介面,它通過 RPC 和 aria2 進行通訊,可以實現檢視檔案的下載情況,可以新增、暫停、刪除 下載任務;

  • web 版:aria2c.com/
  • 外掛版: 在 Chrome 應用商店直接進行搜尋下載安裝;
  • YAAW 在配置檔案中我們只是簡單開啟了 RPC 併為進行多餘的配置那麼,我們只需要開啟 YAAW 即可使用,保持預設的配置即可;

五、aria2 更多配置說明:

## '#'開頭為註釋內容, 選項都有相應的註釋說明, 根據需要修改 ##
## 被註釋的選項填寫的是預設值, 建議在需要修改時再取消註釋  ##

## 檔案儲存相關 ##

# 檔案的儲存路徑(可使用絕對路徑或相對路徑), 預設: 當前啟動位置
dir=/home/qianyin/下載/aria2
# 啟用磁碟快取, 0為禁用快取, 需1.16以上版本, 預設:16M
#disk-cache=32M
# 檔案預分配方式, 能有效降低磁碟碎片, 預設:prealloc
# 預分配所需時間: none < falloc ? trunc < prealloc
# falloc和trunc則需要檔案系統和核心支援
# NTFS建議使用falloc, EXT3/4建議trunc, MAC 下需要註釋此項
#file-allocation=none
# 斷點續傳
continue=true

## 下載連線相關 ##

# 最大同時下載任務數, 執行時可修改, 預設:5
#max-concurrent-downloads=5
# 同一伺服器連線數, 新增時可指定, 預設:1
max-connection-per-server=5
# 最小檔案分片大小, 新增時可指定, 取值範圍1M -1024M, 預設:20M
# 假定size=10M, 檔案為20MiB 則使用兩個來源下載; 檔案為15MiB 則使用一個來源下載
min-split-size=10M
# 單個任務最大執行緒數, 新增時可指定, 預設:5
#split=5
# 整體下載速度限制, 執行時可修改, 預設: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
# 連線超時時間, 預設:60
#timeout=60
# 最大重試次數, 設定為0表示不限制重試次數, 預設:5
#max-tries=5
# 設定重試等待的秒數, 預設:0
#retry-wait=0

## 進度儲存相關 ##

# 從會話檔案中讀取下載任務
input-file=/home/qianyin/下載/aria2/aria2.session
# 在Aria2退出時儲存`錯誤/未完成`的下載任務到會話檔案
save-session=/home/qianyin/下載/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
# 事件輪詢方式, 取值:[epoll, kqueue, port, poll, select], 不同系統預設值不同
#event-poll=select
# RPC監聽埠, 埠被佔用時可以修改, 預設:6800
#rpc-listen-port=6800
# 設定的RPC授權令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 選項
#rpc-secret=<TOKEN>
# 設定的RPC訪問使用者名稱, 此選項新版已廢棄, 建議改用 --rpc-secret 選項
#rpc-user=<USER>
# 設定的RPC訪問密碼, 此選項新版已廢棄, 建議改用 --rpc-secret 選項
#rpc-passwd=<PASSWD>
# 是否啟用 RPC 服務的 SSL/TLS 加密,
# 啟用加密後 RPC 服務需要使用 https 或者 wss 協議連線
#rpc-secure=true
# 在 RPC 服務中啟用 SSL/TLS 加密時的證書檔案,
# 使用 PEM 格式時,您必須通過 --rpc-private-key 指定私鑰
#rpc-certificate=/path/to/certificate.pem
# 在 RPC 服務中啟用 SSL/TLS 加密時的私鑰檔案
#rpc-private-key=/path/to/certificate.key

## BT/PT下載相關 ##

# 當下載的是一個種子(以.torrent結尾)時, 自動開始BT任務, 預設:true
#follow-torrent=true
# BT監聽埠, 當埠被遮蔽時使用, 預設:6881-6999
listen-port=51413
# 單個種子最大連線數, 預設:55
#bt-max-peers=55
# 開啟DHT功能, PT需要禁用, 預設:true
enable-dht=false
# 開啟IPv6 DHT功能, PT需要禁用
#enable-dht6=false
# DHT網路監聽埠, 預設:6881-6999
#dht-listen-port=6881-6999
# 本地節點查詢, PT需要禁用, 預設:false
#bt-enable-lpd=false
# 種子交換, PT需要禁用, 預設:true
enable-peer-exchange=false
# 每個種子限速, 對少種的PT很有用, 預設:50K
#bt-request-peer-speed-limit=50K
# 客戶端偽裝, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 當種子的分享率達到這個數時, 自動停止做種, 0為一直做種, 預設:1.0
seed-ratio=0
# 強制儲存會話, 即使任務已經完成, 預設:false
# 較新的版本開啟後會在任務完成後依然保留.aria2檔案
#force-save=false
# BT校驗相關, 預設:true
#bt-hash-check-seed=true
# 繼續之前的BT任務時, 無需再次校驗, 預設:false
bt-seed-unverified=true
# 儲存磁力連結後設資料為種子檔案(.torrent檔案), 預設:false
bt-save-metadata=true
複製程式碼

相關文章