أداة لتسريع تنزيل كميات كبيرة من الملفات الصغيرة
نشأ هذا المشروع من لعبة لعبتها من قبل، حيث كان يقوم بتنزيل عدد كبير من الملفات الصغيرة عند تحديث الإصدار، ومع ذلك، لم يكن هناك تحسين، لذلك كانت السرعة بطيئة جدًا سيناريو التنزيل لعدد كبير من الملفات الصغيرة، بعد فكرة بسيطة، توصلت إلى هذه الفكرة، نظرًا لأن سرعة التنزيل بطيئة بسبب وجود عدد كبير جدًا من الملفات الصغيرة، فما عليك سوى وضعها جميعًا في ملف واحد كبير ، يمكن نظريًا أن تصل سرعة تنزيل الملفات الكبيرة إلى النطاق الترددي الكامل!
مبدأ المشروع هو ربط عدد كبير من الملفات الصغيرة مباشرة في ملف كتلة، ثم إنشاء كتالوج، يقوم العميل بتنزيل ملف الكتلة من خلال الكتالوج واستعادة الملف محليًا بناءً على حجم الملف ومساره خصائص 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