宮古
v1.0.0
一個加速大量小檔案下載的工具
此專案是源自於之前玩的遊戲,他會在更新版本時下載大量的小文件,但是沒有任何優化所以速度非常的慢,故想到有沒有辦法優化一下大量小文件的下載場景簡單構思後想到,既然下載速度慢是因為小檔案太多,那就把他們都拼成一個大檔案就好了,畢竟大檔案的下載速度理論上可以跑滿頻寬!
專案的原理就是將大量的小文件直接連結成一個區塊文件,然後產生一份catalog,客戶端透過catalog下載區塊文件並依據文件大小和路徑在本地還原文件並且基於HTTP Range
的特性,還可以實現斷點重連和下載某個檔案的功能
assets
資料夾assets
資料夾內的任意資料夾,例如assets/example
assets
目錄下的所有子資料夾為單位建立打包文件,並為他們建立catalog.json
Server started at http://0.0.0.0:8080
即為啟動完成client
開始下載文件,
為catalog.json
的下載地址,服務端啟動時會自動生成,假設你的服務端文件路徑是assets/example
,則catalog地址就為http://localhost:8080/example/catalog.json
download
資料夾建置需要Golang >= 1.22.2
go mod tidy
go build ./cmd/server/
go build ./cmd/client/
引入包
go get -u github.com/nijinekoyo/miyako
包使用說明
本項目基於MIT License
協議分發