เครื่องมือเพื่อเพิ่มความเร็วในการดาวน์โหลดไฟล์ขนาดเล็กจำนวนมาก
โปรเจ็กต์นี้มาจากเกมที่ฉันเล่นมาก่อน มันจะดาวน์โหลดไฟล์ขนาดเล็กจำนวนมากเมื่ออัปเดตเวอร์ชัน อย่างไรก็ตาม ไม่มีการเพิ่มประสิทธิภาพ ดังนั้นความเร็วจึงช้ามาก ดังนั้นฉันจึงคิดว่าจะมีวิธีเพิ่มประสิทธิภาพหรือไม่ สถานการณ์การดาวน์โหลดไฟล์ขนาดเล็กจำนวนมาก หลังจากมีแนวคิดง่ายๆ ฉันก็เกิดแนวคิดนี้ขึ้น เนื่องจากความเร็วในการดาวน์โหลดช้าเนื่องจากมีไฟล์ขนาดเล็กมากเกินไป จากนั้นจึงรวมไฟล์ทั้งหมดไว้ในไฟล์ขนาดใหญ่เพียงไฟล์เดียว ความเร็วในการดาวน์โหลดไฟล์ขนาดใหญ่ในทางทฤษฎีสามารถเข้าถึงแบนด์วิดธ์เต็มได้!
หลักการของโปรเจ็กต์คือการเชื่อมโยงไฟล์ขนาดเล็กจำนวนมากเข้ากับไฟล์บล็อกโดยตรง จากนั้นจึงสร้างแค็ตตาล็อกไฟล์ผ่านแค็ตตาล็อกและกู้คืนไฟล์ในเครื่องตามขนาดไฟล์และเส้นทาง ลักษณะของ 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