Alat untuk mempercepat pengunduhan file kecil dalam jumlah besar
Proyek ini berawal dari game yang saya mainkan sebelumnya, akan mendownload file kecil dalam jumlah besar saat mengupdate versinya. Namun, tidak ada optimasi, jadi kecepatannya sangat lambat skenario pengunduhan sejumlah besar file kecil. Setelah ide sederhana, saya mendapat ide ini, karena kecepatan pengunduhan lambat karena terlalu banyak file kecil, maka masukkan saja semuanya ke dalam satu file besar , kecepatan unduh file besar secara teoritis dapat mencapai bandwidth penuh!
Prinsip proyek ini adalah secara langsung menghubungkan sejumlah besar file kecil ke dalam file blok, dan kemudian menghasilkan katalog. Klien mengunduh file blok melalui katalog dan memulihkan file secara lokal berdasarkan ukuran dan jalur file karakteristik HTTP Range
, juga dapat mengalami gangguan. Klik untuk menyambung kembali dan mengunduh fungsi file
Buka Rilis untuk mengunduh versi biner klien dan server terbaru
Menyebarkan server
Tempatkan file biner di direktori mana pun dan buat folder assets
di direktori yang sama
Tempatkan file kecil yang perlu diunduh lebih cepat ke folder mana pun dalam folder assets
, seperti assets/example
Mulai server. Saat server dimulai, secara otomatis akan membuat file pengemasan untuk semua subfolder di direktori assets
dan membuat catalog.json
untuknya.
Server meminta Server started at http://0.0.0.0:8080
yang berarti startup telah selesai.
Unduh file melalui klien
Tempatkan file biner ke direktori mana pun
Masukkan client <CatalogAddr>
untuk mulai mengunduh file. <CatalogAddr>
adalah alamat pengunduhan catalog.json
, yang akan dibuat secara otomatis saat server dimulai. Asumsikan jalur file server Anda adalah assets/example
, maka alamat katalognya adalah http://localhost:8080/example/catalog.json
File yang diunduh akan otomatis tersimpan di folder download
Pembangunan membutuhkan Golang >= 1.22.2
Instal dependensi
jadilah mod rapi
Bangun servernya
lanjutkan membangun ./cmd/server/
Bangun klien
lanjutkan membangun ./cmd/client/
Paket impor
go get -u github.com/nijinekoyo/miyako
Instruksi paket
pkg/katalog
Digunakan untuk membuat dan mengurai katalog, silakan lihat dokumentasi API
pkg/blok
Digunakan untuk menghasilkan blok file dan mengunduh blok file, silakan lihat dokumentasi API
Proyek ini didistribusikan berdasarkan perjanjian MIT License