整合營銷服務商

          電腦端+手機端+微信端=數(shù)據同步管理

          免費咨詢熱線:

          幾句代碼寫個飛快的下載軟件,輕快版 aria2 支持

          幾句代碼寫個飛快的下載軟件,輕快版 aria2 支持 UPnP,獨立 EXE 程序

          ria2 雖然很強大,配置就略有些復雜,一些懶人包說實話整成了累人包。

          今天抽了點時間改進了一下 aardio 中的 process.aria2 擴展庫,順手解決了 aria2 不支持 UPnP 內網穿透的問題 —— 再也不用手動去配置了。

          process.aria2 可以自動創(chuàng)建并管理 aria2 服務進程,自動獲取并添加最新 Tracker 服務器,自動探測可用空閑端口,多個 aria2 進程不會沖突。并且自動檢測系統(tǒng)環(huán)境并自動設置最佳配置。

          寫界面也要不了幾句代碼。下面介紹 2 種實現(xiàn)界面的方案:

          1、用網頁寫界面。先用 WebView2 + AriaNg 演示一下。至于強大的 WebView2 請參考:放棄 Electron,擁抱 WebView2!JavaScript 快速開發(fā)獨立 EXE 程序

          2、直接用 aardio 創(chuàng)建原生界面。

          這兩種方案的完整源碼我放到 process.aria2 擴展庫的范例里了。運行「 aardio 工具 > 擴展庫 」,在庫名稱中輸入 process.aria2 找到擴展庫,雙擊擴展庫名字可以打開范例( 右鍵菜單也可以 ):

          這里要注意一下,BT 下載如果一開始沒速度是正常的,等一下或者先找個熱門資源下載速度就會上來了。

          方案一:網頁( WebView2 + AriaNg )實現(xiàn) aria2 界面

          先看效果:

          軟件的全部 aardio 代碼其實沒幾句,如下:

          import win.ui;
          /*DSG{{*/
          var winform=win.form(text="aria下載器";right=1250;bottom=704;border="none")
          winform.add(
          bk={cls="bk";left=0;top=0;right=1251;bottom=31;bgcolor=11841964;dl=1;dr=1;dt=1;forecolor=5392444;linearGradient=0;z=2};
          custom={cls="custom";text="";left=0;top=28;right=1251;bottom=706;bgcolor=16777215;db=1;dl=1;dr=1;dt=1;z=1}
          )
          /*}}*/
          
          import process.aria2;
          var aria2=process.aria2();  
          aria2.startServer(); 
           
          import web.view;
          var wb=web.view(winform.custom);
          
          //創(chuàng)建嵌入HTTP服務器
          import wsock.tcp.simpleHttpServer; 
          wsock.tcp.simpleHttpServer.threadGlobal={
              ARIA2_RPC_PORT=tostring(aria2.rpcPort);
              ARIA2_RPC_SECRET=crypt.bin.encodeBase64(aria2.rpcToken);
          }
          
          wb.go("/html/index.html");
          
          //關閉窗口前關閉 aria2
          winform.onDestroy=function(){
          	aria2.stop();
          }
          
          //添加窗口標題欄、邊框、陰影等
          import win.ui.simpleWindow;
          win.ui.simpleWindow(winform);
          
          winform.show();
          win.loopMessage();

          aardio 用 simpleHttpServer 創(chuàng)建了一個嵌入式的微型 HTTP 服務端,另外 aardio 也可以將網頁端的 AriaNg 自動嵌入 EXE 文件 —— 所以能生成獨立 EXE。

          aardio 支持類似 PHP 的服務端模板語法,這里我們簡單地將初始化配置的 *.js 文件 改為 *.aardio 文件,然后在這個 aardio 文件里動態(tài)讀取上面代碼設置的


          ARIA2_RPC_PORT, ARIA2_RPC_SECRET

          就可以讓 AriaNg 愉快地連接到 aardio 創(chuàng)建的 aria2 服務端了。

          實際上就是修改 aria-ng-***.min.js,主要修改代碼如下:

          response.contentType="application/x-javascript"; ?> 
          //…… 省略其他代碼 ……
          angular.module("ariaNg").constant("ariaNgDefaultOptions", {
              rpcPort: "<?=ARIA2_RPC_PORT ?>",
              secret: "<?=ARIA2_RPC_SECRET ?>"
          }) 

          當然這種事就不需要自己動手去改動 AriaNg 了,我在范例里寫了一個『 更新前端 HTML.aardio 』,直接運行這個代碼就可以自動下載最新版 AriaNg,自動修改 AriaNg …… 全自動搞定。


          方案二:直接用 aardio 創(chuàng)建原生界面

          這個界面我寫得比較簡單,主要演示用 aardio 直接調用 aria2 的 JSON-RPC 接口有多方便。這個先搞定了的話,單純畫個界面用什么界面組件就可以自由發(fā)揮了。

          先看界面:

          此方案生成的軟件體積更小,下面看完整源碼( 不再需要其他代碼 )。

          家好,我是路程lucky,熱愛開發(fā)、設計、學習、生活、愛搗鼓的web前后端工程師,為您帶來原創(chuàng)文章~

          本文基于centos系統(tǒng)的aria2離線下載服務的安裝,適用于各類所需人群學習、研究、實踐。離線下載的原理、實踐相信能給大家?guī)硎斋@。

          引言

          在前幾期文章中,我們分別在windows和centos操作系統(tǒng)基礎上搭建了DLNA媒體服務,已經能夠實現(xiàn)了媒體服務器上綁定的文件夾能夠動態(tài)監(jiān)測文件夾內容,包含媒體文件就能夠局域網發(fā)送更新信息,從而電視端、手機端的DLNA終端設備更新獲取到最新的播放媒體信息。

          「動手打造家庭媒體網絡平臺」體驗篇-媒體服務配置和預覽效果

          「動手打造家庭媒體網絡平臺」安裝篇-windows搭建DLNA媒體服務

          「動手打造家庭媒體網絡平臺」安裝篇-centos搭建DLNA媒體服務


          點擊新增

          然而,我們當時只是測試,手動在服務器的文件夾存放文件,這十分的不方便。我們預期是能夠離線下載。因此,我們的服務器需要一個離線下載工具,能夠在對應文件夾中下載我們所需的媒體資源。

          什么是離線下載

          最簡單的理解是不在本機進行下載,由服務器幫你下載好,當你需要的時候再取回本地。

          軟件選擇

          經過調查當前支持linux的離線下載的軟件有:

          • aria2:一個多平臺輕量級,支持 HTTP、FTP、BitTorrent 等多協(xié)議的命令行下載工具。http://aria2.github.io/
          • transmission:由C開發(fā)而成(Mac OS上用的是Objective-C),硬件資源消耗極少,界面極度精簡。https://transmissionbt.com/

          這里我們采用的是aria2

          軟件結構

          aria2分為客戶端和服務器端。

          • 服務端:真正下載資源的服務aria2c進程。

          aria2服務端官網

          • 客戶端:GUI界面,提供資源的增刪改調用服務器進行下載。這里推薦使用ariang的UI套件:基于angular開發(fā)的靜態(tài)資源,接口請求aria2c進程。下載地址:http://ariang.mayswind.net/

          ariang客戶端網站

          aria2服務端軟件安裝

          centos下的軟件主要步驟類似之前安裝serviio軟件一致,通過tar解壓、configure配置、make install安裝的方式進行安裝即可。

          先從官網下載壓縮包https://github.com/aria2/aria2/releases/tag/release-1.35.0或者下載aria2源代碼https://github.com/aria2/aria2,這里我們下載最新版。這里下載tar.gz的tar包。

          選擇tar.gz

          關鍵步驟:

          cd /lucky
          // 解壓安裝包
          tar -xzvf aria2-1.35.0.tar.gz
          ./configure
          make
          make install

          直接啟動aria2:

          // 啟動aria2進程, --enable-rpc=true參數(shù)為啟動rpc進程,默認為6800端口,這樣ui可以訪問到
          aria2c  --enable-rpc=true

          *創(chuàng)建aria2自動啟動服務

          由于默認軟件安裝并不會每次開機就執(zhí)行。我們需要將aria2改造為可啟動的service服務,模式與原理跟之前的安裝serviio類似具體可以參考。

          aria2可以通過配置文件方式啟動,給予它設置一些默認參數(shù),這里我們放到/etc/aria2/aria2.conf文件中,如果沒有可以新建。

          STEP1.創(chuàng)建aria2-rpc.service

          // 創(chuàng)建service文件
          touch /lib/systemd/system/aria2-rpc.service
          
          // 輸入服務內容
          [Unit]
          Description=aria2c-rpc
          After=syslog.target network.target remote-fs.target nss-lookup.target
          
          [Service]
          User=root
          Group=root
          GuessMainPID=yes
          ExecStart=/bin/aria2c --enable-rpc=true -D --conf-path=/etc/aria2/aria2.conf
          ExecReload=/bin/kill -s QUIT $MAINPID
          ExecStop=/bin/kill -s QUIT $MAINPID
          RemainAfterExit=yes
          
          [Install]
          WantedBy=multi-user.target

          STEP2.啟動服務

          // centos系統(tǒng)方式啟動
          systemctl start aria2c-rpc
          // 停止
          systemctl stop aria2c-rpc
          // 重啟
          systemctl restart aria2c-rpc

          aria2客戶端軟件安裝

          客戶端其實就是html、css、js的靜態(tài)資源。需要搭建web服務器即可。這里使用nginx直接作為靜態(tài)資源服務器能夠訪問到。放到對應目錄即可。接口會調用 端口為6800的rpc服務知曉實時的狀態(tài)

          預覽效果

          瀏覽器訪問web客戶端頁面,點擊新增,輸入下載地址,開始下載

          點擊新增

          新增下載地址

          設置下載路徑

          當文件下載完成后,就會按照我們之前的章節(jié)所提到的,媒體服務自動更新,DLNA客戶端自動獲取到最新視頻,即實現(xiàn)了觀看離線下載的媒體

          結尾

          離線下載技術使得我們能夠將下載的任務交給服務器,實現(xiàn)資源共享。

          通過離線下載媒體資源,貫通媒體資源播放,從而實現(xiàn)了媒體文件從源頭獲取到最終終端播放的一條順暢數(shù)據流,全程手機操作,在互聯(lián)網時代,真正實現(xiàn)了家庭媒體網絡平臺。


          堅持原創(chuàng),堅持動手實踐,那么持續(xù)關注我,給予創(chuàng)造的動力,還給你一片廣袤的天空。我是路程lucky,分享和實踐專業(yè)技能,為美好生活和未來而努力奮斗。

          riaNg Native中文版是mac上一款基于aria2開源下載軟件的Web前端,遵守MIT開源協(xié)議, 使用純 html & Javascript 開發(fā), 不需要任何編譯器或運行環(huán)境. 只要將 AriaNg 放在 Web 服務器里并在瀏覽器中打開即可使用. AriaNg使用響應式布局, 支持各種計算機或移動設備,支持多語言包括中文。

          純Html和Javascript,無需運行時

          響應式設計,支持桌面和移動設備

          用戶友好的界面

          排序任務(按名稱,大小,進度,剩余時間,下載速度等),文件,bittorrent同行

          搜索任務

          重試任務

          通過拖動調整任務順序

          更多任務信息(健康百分比,bt同行的客戶信息等)

          按照指定的文件類型(視頻,音頻,圖片,文檔,應用程序,存檔等)或文件擴展名過濾文件

          多目錄任務的樹視圖

          下載/上傳aria2或單個任務的速度表

          完全支持aria2設置

          url命令行api支持

          下載完成的通知

          多語言支持

          多aria2 RPC主機支持

          導出和導入設置支持

          減少帶寬使用,僅請求增量數(shù)據

          查看AriaNg Native 1.1.5安裝包!http://ll006.cn/wOdKvs


          主站蜘蛛池模板: 成人国内精品久久久久一区| 日韩内射美女人妻一区二区三区| 中文字幕一区二区三区免费视频| 国产成人一区二区三区视频免费| 国产福利一区二区精品秒拍| 无码精品人妻一区二区三区人妻斩 | 国产成人精品一区二区三区免费 | 无码人妻精品一区二区三区99仓本| 一区二区三区视频免费| 国产福利91精品一区二区| 国产成人无码AV一区二区在线观看| 国产日韩精品一区二区在线观看播放| 91久久精品无码一区二区毛片| 消息称老熟妇乱视频一区二区| 国产精品一区二区久久国产| 亚洲一区精品伊人久久伊人| 一区二区三区内射美女毛片| 精品无码成人片一区二区| 精品视频午夜一区二区| 日韩在线一区视频| 国产一区二区三区美女 | 久久一区不卡中文字幕| 国产成人久久精品一区二区三区 | 中文字幕一区二区三区乱码| 亚洲一区二区三区免费| 久久精品国产一区二区| 国产成人片视频一区二区| 中文字幕一区二区三区精华液| 丝袜人妻一区二区三区| 国产午夜精品一区二区三区嫩草| 国产丝袜美女一区二区三区| 亚洲成AV人片一区二区| 精品无人区一区二区三区| 一本一道波多野结衣一区| 在线观看视频一区二区| 一区二区三区在线看| 国产精品女同一区二区| 伦精品一区二区三区视频| 国产精品熟女视频一区二区| 亚洲国产一区二区三区| 国产成人一区二区三区视频免费|