miyako
v1.0.0
大量の小さなファイルのダウンロードを高速化するツール
このプロジェクトは以前プレイしたゲームに由来しており、バージョンを更新すると大量の小さなファイルがダウンロードされるため、速度が非常に低かったため、最適化する方法はないか考えました。多数の小さなファイルをダウンロードするシナリオ。小さなファイルが多すぎてダウンロード速度が遅いため、結局、それらをすべて 1 つの大きなファイルにまとめてしまうという考えを思いつきました。 、大きなファイルのダウンロード速度は理論的には全帯域幅に達する可能性があります。
プロジェクトの原理は、多数の小さなファイルをブロック ファイルに直接リンクし、クライアントがカタログを通じてブロック ファイルをダウンロードし、ファイル サイズとパスに基づいてファイルをローカルに復元することです。 HTTP Range
の特性により、クリックして再接続し、ファイルをダウンロードする機能も実現できます。
assets
フォルダーを作成します。assets/example
などのassets
フォルダー内の任意のフォルダーに配置します。assets
ディレクトリ内のすべてのサブフォルダーのパッケージ ファイルが自動的に作成され、それらのcatalog.json
が作成されます。Server started at http://0.0.0.0:8080
これは、起動が完了したことを意味します。client
を入力します。
は、サーバーの起動時に自動的に生成される、 catalog.json
のダウンロード アドレスです。サーバー ファイル パスは、 assets/example
であり、カタログ アドレスはhttp://localhost:8080/example/catalog.json
であるとします。 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
契約に基づいて配布されています