Ein Tool zum Beschleunigen des Herunterladens großer Mengen kleiner Dateien
Dieses Projekt stammt aus einem Spiel, das ich zuvor gespielt habe. Es gab jedoch keine Optimierung, daher war die Geschwindigkeit sehr langsam. Daher habe ich darüber nachgedacht, ob es eine Möglichkeit zur Optimierung gibt Das Download-Szenario einer großen Anzahl kleiner Dateien kam mir auf die Idee, sie alle in eine große Datei zu packen, da die Download-Geschwindigkeit langsam ist , kann die Download-Geschwindigkeit großer Dateien theoretisch die volle Bandbreite erreichen!
Das Prinzip des Projekts besteht darin, eine große Anzahl kleiner Dateien direkt zu einer Blockdatei zu verknüpfen und dann einen Katalog zu erstellen. Der Client lädt die Blockdatei über den Katalog herunter und stellt die Datei basierend auf der Dateigröße und dem Pfad wieder her Aufgrund der Eigenschaften des HTTP Range
kann es auch zu Unterbrechungen kommen, um die Verbindung wiederherzustellen und eine Dateifunktion herunterzuladen
assets
-Ordner im selben Verzeichnisassets
-Ordner, z. B. assets/example
assets
-Verzeichnis und erstellt für sie catalog.json
.Server started at http://0.0.0.0:8080
was bedeutet, dass der Startvorgang abgeschlossen ist.client
ein, um mit dem Herunterladen der Datei zu beginnen.
ist die Download-Adresse von catalog.json
, die beim Starten des Servers automatisch generiert wird. Gehen Sie davon aus, dass Ihr Serverdateipfad assets/example
lautet, dann lautet die Katalogadresse http://localhost:8080/example/catalog.json
download
-Ordner gespeichert Build erfordert Golang >= 1.22.2
go mod tidy
go build ./cmd/server/
go build ./cmd/client/
Paket importieren
go get -u github.com/nijinekoyo/miyako
Packungsanleitung
Dieses Projekt wird unter der MIT License
vertrieben