Инструмент для ускорения загрузки больших объемов небольших файлов.
Этот проект возник из игры, в которую я играл раньше. При обновлении версии загружалось большое количество мелких файлов. Однако оптимизации не было, поэтому скорость была очень низкой. Поэтому я подумал, есть ли способ оптимизировать. сценарий загрузки большого количества маленьких файлов.После простой идеи мне пришла в голову такая идея, так как скорость загрузки низкая из-за слишком большого количества маленьких файлов, то просто поместите их все в один большой файл. , скорость загрузки больших файлов теоретически может достигать полной пропускной способности!
Принцип проекта заключается в том, чтобы напрямую связать большое количество небольших файлов в файл блока, а затем создать каталог. Клиент загружает файл блока через каталог и восстанавливает файл локально на основе размера файла и пути. характеристики HTTP Range
, он также может добиться прерывания. Нажмите, чтобы повторно подключиться и загрузить функцию файла.
assets
в том же каталоге.assets
, например assets/example
assets
и создаст для них catalog.json
.Server started at http://0.0.0.0:8080
что означает, что запуск завершен.client
чтобы начать загрузку файла.
— это адрес загрузки catalog.json
, который будет автоматически сгенерирован при запуске сервера. Предположим, что путь к файлу вашего сервера — assets/example
, тогда адрес каталога — 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