臥槽,又開源一個(gè)下載神器!
@Travis-CI && @GithubAction && @Coding && @Vercel,你幫我下載文件行嗎QvQ
前言
開源地址:
https://github.com/ChenYFan-Tester/____-help-me-download
作者:ChenYFan 已獲得作者原創(chuàng)轉(zhuǎn)載
ps:請(qǐng)勿濫用
此項(xiàng)目是一個(gè)鰯鯽下午在學(xué)校用下載Github下載PicGo時(shí)的無力吐槽。
網(wǎng)傳加速Github的項(xiàng)目有很多種,包括但不限于:
Gitee加速克隆 【缺點(diǎn):賬號(hào)在異地登陸很有可能風(fēng)控需要手機(jī)驗(yàn)證碼(然而人在學(xué)校沒有手機(jī)】 cnpm加速 【缺點(diǎn):無法下載Release,且移動(dòng)網(wǎng)絡(luò)下載速度雞賊】 CloudFlareWorkers加速 【缺點(diǎn):電信網(wǎng)絡(luò)下下載速度比百度網(wǎng)盤稍微好些,而且丟包嚴(yán)重】 jsdelivr加速 【缺點(diǎn):無法下載>20MB的文件,并且官方屏蔽exe下載】 改host 【一句話,麻煩(拒絕任何反駁qwq】
此項(xiàng)目均解決以上問題,但是仍有缺點(diǎn):
第一次配置略麻煩 每下載一次文件需要修改一次Github 若大文件下載分包較多麻煩
開始
Travis-CI(平均53s
第一次配置
Star?此項(xiàng)目 【可選 Fork此倉庫 修改 .travis.yml14行單引號(hào)括起來的鏈接地址,將其設(shè)置為你所需要下載的鏈接。
注意,其中不得包含特殊字符如&
實(shí)際上我可以把它寫在travis-ci的變量里,可以避免公布下載鏈接,但是個(gè)人測(cè)試,github訪問速度比travis-ci快多了,而且travis-ci登陸還是要Github...
進(jìn)入你的Github個(gè)人資料,新建一個(gè)token ,權(quán)限至少repo讀寫、profile讀【建議全勾】,生成token并復(fù)制,妥善保管。
進(jìn)入 https://travis-ci.org 或 https://travis-ci.com,用github賬號(hào)登入,進(jìn)入dashboard-setting,設(shè)置環(huán)境變量:變量名字:
GH_TOKEN,變量值: 你生成的TOKEN,tigger此項(xiàng)目。大約一分鐘,這個(gè)項(xiàng)目就會(huì)變綠,如果沒有,請(qǐng)檢查日志;成功后進(jìn)入倉庫,選擇
gh-pages分支,你大概會(huì)看到以下文件:
gh-pages
??-?dl.tar.bz2.aa
??-?dl.tar.bz2.ab
??-?dl.tar.bz2.ac
??-?dl.tar.bz2.ad
??
原來下載文件在 re\ 文件夾下,為避免Github發(fā)現(xiàn)有二進(jìn)制文件并發(fā)送警告郵件,我們?cè)诓渴鹎皠h除了/re文件夾。但是jsdelivr禁止下載exe文件且不得大于20MB,所以我們將其分割為20MB的包,下載時(shí)請(qǐng)使用以下鏈接:
https://cdn.jsdelivr.net/gh/用戶名/倉庫名字@gh-pages/分塊名字
以本倉庫為例,下載以下所有鏈接:
https://cdn.jsdelivr.net/gh/ChenYFan-Tester/travis-ci-help-me-download@gh-pages/dl.tar.bz2.aa
https://cdn.jsdelivr.net/gh/ChenYFan-Tester/travis-ci-help-me-download@gh-pages/dl.tar.bz2.ab
https://cdn.jsdelivr.net/gh/ChenYFan-Tester/travis-ci-help-me-download@gh-pages/dl.tar.bz2.ac
https://cdn.jsdelivr.net/gh/ChenYFan-Tester/travis-ci-help-me-download@gh-pages/dl.tar.bz2.ad
https://cdn.jsdelivr.net/gh/ChenYFan-Tester/travis-ci-help-me-download@gh-pages/end.bat
剪切以下文件至新建文件夾,運(yùn)行 end.bat 合并所有分塊,解壓 dl.tar.bz2 即可
以后...
改 .travis.yml14行單引號(hào)括起來的鏈接地址,將其設(shè)置為你所需要下載的鏈接。為繞開jsdelivr緩存,請(qǐng)修改16行、17行默認(rèn)的名字 dl【可選】進(jìn)入github,gh-pages分支等待一分鐘即可
Coding部署版(不清楚
此方法避免分塊麻煩
感謝Colsrch 提供Coding版本及readme
詳見Coding倉庫:Coding幫我下個(gè)文件
配置方法
Star?此項(xiàng)目 【可選 新建一個(gè)倉庫 將 /Coding文件夾中的Jenkinsfile文件寫入倉庫,文件名不變新建構(gòu)建計(jì)劃,選擇自定義構(gòu)建計(jì)劃,選擇代碼庫為Coding,選擇該倉庫,配置來源選擇 使用代碼庫中的Jenkinsfile,節(jié)點(diǎn)池選擇硅谷-美國。修改觸發(fā)規(guī)則為推送到master自動(dòng)執(zhí)行。
食用方法
申請(qǐng)一個(gè)令牌 添加默認(rèn)字符串變量 CODING_KEY變量內(nèi)容為:令牌用戶名:令牌密鑰修改倉庫Jenkinsfile文件中的克隆地址為該倉庫地址。 修改需要下載的下載鏈接 保存就可以啦,然后就會(huì)自動(dòng)開始下載。 最后前往 download分支下載你所需的這個(gè)文件就可以了,別忘了下載完成后刪除download分支哦。之后食用直接修改下載鏈接即可,別忘了每次下載完成后要?jiǎng)h除download分支哦
Github-Action版本(平均耗時(shí)46s
感謝Flexiston,同樣支持GithubAction部署,原理類似,請(qǐng)自行更改。
默認(rèn)使用travis-ci部署,若用GithubAction請(qǐng)將workflew的yml中 _master 改為 master,并設(shè)置倆變量TOKEN和LINK,TOKEN即GithubTOKEN,LINK為下載鏈接
Vercel版本(平均耗時(shí)12s
目前部署速度最快
電信用戶強(qiáng)推,電信直連香港亞馬遜,避免分塊麻煩
首先你有個(gè)github賬號(hào),用此賬號(hào)登錄vercel ,并Star?此項(xiàng)目 【可選 Import此項(xiàng)目 新建一個(gè)變量,變量名字為 LINK變量值為下載鏈接。Deploy!你會(huì)獲得一串鏈接,里面是vercel自帶的目錄列表程序,點(diǎn)擊下載即可 以后只要修改LINK值并點(diǎn)擊 redeploy重新部署即可。
已知的問題:
[x] 下載Release時(shí)可能會(huì)下載到Github默認(rèn)的跳轉(zhuǎn)頁面【此時(shí)為一個(gè)html】 暫時(shí)解決方法:用記事本打開下載的文件,復(fù)制跳轉(zhuǎn)鏈接,用雙引號(hào)包裹該鏈接下載 注意:建議直接下載Source打包,避免跳轉(zhuǎn)至亞馬遜云【亞馬遜云鏈接有特殊字符】 已修復(fù),采用-L支持重定向
Todo:
[x] 編寫GithubAction版本 [x] 編寫Coding版本 [ ] Netlify支持 [ ] Heroku支持 [x] Vercel支持
關(guān)于
travis-ci集成部署,通過curl下載、tar打包、split切塊、git部署至Github、jsdelivr加速下載、windows下copy命令合并。
此腳本可以下載任意直鏈文件,包括但不限于Github,但是請(qǐng)勿濫用。
請(qǐng)注意下載完畢后將 gh-pages 分支及時(shí)刪除!否則會(huì)產(chǎn)生比較大的commit影響Github!
jsdelivr條約約束:
根據(jù)2020年8月9日J(rèn)sdelivr Create Acceptable Use Policy
其中第4條Prohibited Use:
4.?Prohibited?Use
The?following?behavior?is?prohibited:
?1.?Hosting?or?accessing?content?that:
?????-?contains?malware?or?harmful?code?in?any?form,
?????-?violates?proprietary?rights?of?others,
?????-?is?sexually?explicit,
?????-?is?potentially?illegal?in?the?EU?or?the?USA.
?2.?Abusing?the?service?and?its?resources,?or?using?jsDelivr?as?a?general-purpose
????file?or?media?hosting?service.?This?includes,?for?example:
?????-?running?an?image?hosting?website?and?using?jsDelivr?as?a?storage?for?all
???????uploaded?images,
?????-?hosting?videos,?file?backups,?or?other?files?in?large?quantities.
????We?recognize?that?there?are?legitimate?projects?that?consist?of?a?large?number
????of?files,?and?these?are?not?considered?abuse.?For?example:?icons?packs,?apps,
????or?games?with?a?large?number?of?assets.
其中第二點(diǎn)明確指出不得用于大型文件備份,雖然我們有分塊制度,但我個(gè)人建議不得下載超過100MB。
第5條Additional Restrictions in China
##?5.?Additional?Restrictions?in?China
jsDelivr?holds?an?ICP?license?issued?by?the?Chinese?government,
which?allows?us?to?operate?infrastructure?directly?in?Mainland?China.
To?keep?this?license?and?allow?our?Chinese?users?to?benefit?from?the?performance
improvements?it?provides,?any?content?served?via?our?Chinese?network?must?conform
to?Chinese?policies.?Content?potentially?violating?Chinese?policies?may?be
blocked?in?China?without?warning.
明確指出使用網(wǎng)宿節(jié)點(diǎn)的網(wǎng)民【與居住地點(diǎn)、國籍無關(guān)】必須遵守中華人民共和國法律約束,不得用于下載當(dāng)局明令禁止文件。
由于以上原因?qū)е聼o法使用jsdelivr服務(wù)者,本項(xiàng)目、項(xiàng)目組織、項(xiàng)目創(chuàng)始人均不負(fù)責(zé)。
許可
MIT
如果你也有好的開源項(xiàng)目,歡迎推薦!
微信聯(lián)系:westbrook12000


一個(gè)Github還不夠?微軟又推出新的開源網(wǎng)站!

副業(yè)剛需,個(gè)人開發(fā)者如何通過小程序變現(xiàn)?已經(jīng)有朋友變現(xiàn)月入4k了!

收藏:一套開源車牌識(shí)別系統(tǒng)
