宫古
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
协议分发