Una herramienta para acelerar la descarga de grandes cantidades de archivos pequeños
Este proyecto se originó a partir de un juego que jugué antes. Descargaba una gran cantidad de archivos pequeños al actualizar la versión. Sin embargo, no había optimización, por lo que la velocidad era muy lenta. Por lo tanto, pensé si había una manera de optimizarlo. Escenario de descarga de una gran cantidad de archivos pequeños. Después de una idea simple, se me ocurrió esta idea. Dado que la velocidad de descarga es lenta porque hay demasiados archivos pequeños, simplemente colóquelos todos en un archivo grande. , ¡la velocidad de descarga de archivos grandes puede, en teoría, alcanzar el ancho de banda completo!
El principio del proyecto es vincular directamente una gran cantidad de archivos pequeños en un archivo de bloque y luego generar un catálogo. El cliente descarga el archivo de bloque a través del catálogo y restaura el archivo localmente según el tamaño y la ruta del archivo. Las características de HTTP Range
también pueden lograr la función de interrupción. Haga clic para volver a conectarse y descargar un archivo.
assets
en el mismo directorioassets
, como assets/example
assets
y creará catalog.json
para ellos.Server started at http://0.0.0.0:8080
lo que significa que el inicio está completo.client
para comenzar a descargar el archivo.
es la dirección de descarga de catalog.json
, que se generará automáticamente cuando se inicie el servidor. Suponga que la ruta del archivo de su servidor es assets/example
, luego la dirección del catálogo es http://localhost:8080/example/catalog.json
download
. La compilación requiere Golang >= 1.22.2
go mod tidy
go build ./cmd/server/
go build ./cmd/client/
Paquete de importación
go get -u github.com/nijinekoyo/miyako
Instrucciones del paquete
Este proyecto se distribuye bajo el acuerdo MIT License