أداة مساعدة لجلب الملفات الكبيرة في أجزاء مع دعم التنزيلات المتوازية وتتبع التقدم وطلب الإجهاض.
قم بتثبيت الحزمة باستخدام npm:
تثبيت npm للجلب في القطع
استيراد fetchInChunks من "الجلب في القطع"؛
دالة غير متزامنة fetchInChunks(url, options = {})
url
( string
): عنوان URL للملف المراد تنزيله.
options
( object
، اختياري): كائن يحتوي على خيارات إضافية.
options.chunkSize
( number
، الافتراضي: 5 * 1024 * 1024
): حجم كل قطعة سيتم تنزيلها بالبايت.
options.maxParallelRequests
( number
، افتراضي: 1
): عدد القطع المراد تنزيلها بالتوازي.
options.progressCallback
( function
، اختيارية): وظيفة رد اتصال سيتم استدعاؤها بعدد البايتات التي تم تنزيلها والحجم الإجمالي للملف.
options.signal
( AbortSignal
، اختياري): كائن AbortSignal
الذي يمكن استخدامه لإحباط التنزيل.
Promise<Blob>
: وعد يتحول إلى Blob
يحتوي على الملف الذي تم تنزيله.
استيراد fetchInChunks من 'fetch-in-chunks'؛ وظيفة غير متزامنة downloadFile() { حاول {const blob = انتظار fetchInChunks('https://example.com/largefile.zip');return blob; } التقاط (خطأ) {console.error('خطأ في جلب الملف:'، خطأ)؛ }}downloadFile();
استيراد fetchInChunks من 'fetch-in-chunks'؛ وظيفة غير متزامنة downloadFileWithProgress() { حاول {const blob = انتظار fetchInChunks('https://example.com/largefile.zip', {progressCallback: (تم التنزيل، الإجمالي) => {console.log(`تم التنزيل ${((تم التنزيل / الإجمالي) * 100) .toFixed(2)}%`); },});return blob; } التقاط (خطأ) {console.error('خطأ في جلب الملف:'، خطأ)؛ }}downloadFileWithProgress();
AbortController
استيراد fetchInChunks من 'fetch-in-chunks'؛ وظيفة غير متزامنة downloadFileWithAbort() { وحدة تحكم const = new AbortController(); إشارة ثابتة = وحدة تحكم.إشارة؛ حاول {const blob = انتظار fetchInChunks('https://example.com/largefile.zip', { signal,});return blob; } التقاط (خطأ) {if (error.name === 'AbortError') { console.log('تم إحباط التنزيل');} else { console.error('خطأ في جلب الملف:'، خطأ)؛} } // لإحباط التنزيل في أي وقت تحكم.إحباط ()؛}
تم ترخيص هذا المشروع بموجب ترخيص Apache 2.0. راجع ملف LICENSE
للحصول على التفاصيل.