Ein Dienstprogramm zum Abrufen großer Dateien in Blöcken mit Unterstützung für parallele Downloads, Fortschrittsverfolgung und Anforderungsabbruch.
Installieren Sie das Paket mit npm:
npm installiert Fetch-in-Chunks
fetchInChunks aus „fetch-in-chunks“ importieren;
asynchrone Funktion fetchInChunks(url, Optionen = {})
url
( string
): Die URL der herunterzuladenden Datei.
options
( object
, optional): Ein Objekt, das zusätzliche Optionen enthält.
options.chunkSize
( number
, Standard: 5 * 1024 * 1024
): Die Größe jedes herunterzuladenden Blocks in Bytes.
options.maxParallelRequests
( number
, Standard: 1
): Die Anzahl der Blöcke, die parallel heruntergeladen werden sollen.
options.progressCallback
( function
, optional): Eine Rückruffunktion, die mit der Anzahl der heruntergeladenen Bytes und der Gesamtgröße der Datei aufgerufen wird.
options.signal
( AbortSignal
, optional): Ein AbortSignal
Objekt, das zum Abbrechen des Downloads verwendet werden kann.
Promise<Blob>
: Ein Versprechen, das in einen Blob
aufgelöst wird, der die heruntergeladene Datei enthält.
fetchInChunks aus „fetch-in-chunks“ importieren;asynchrone Funktion downloadFile() { Versuchen Sie es mit {const blob =wait fetchInChunks('https://example.com/largefile.zip');return blob; } Catch (Fehler) {console.error('Fehler beim Abrufen der Datei:', Fehler); }}downloadFile();
fetchInChunks aus „fetch-in-chunks“ importieren;asynchrone Funktion downloadFileWithProgress() { Versuchen Sie es mit {const blob = waiting fetchInChunks('https://example.com/largefile.zip', { progressCallback: (downloaded, total) => {console.log(`Downloaded ${((downloaded / total) * 100) .toFixed(2)}%`); },});return blob; } Catch (Fehler) {console.error('Fehler beim Abrufen der Datei:', Fehler); }}downloadFileWithProgress();
AbortController
fetchInChunks aus „fetch-in-chunks“ importieren;asynchrone Funktion downloadFileWithAbort() { const controller = new AbortController(); const signal = controller.signal; try {const blob = waiting fetchInChunks('https://example.com/largefile.zip', { signal,});return blob; } Catch (error) {if (error.name === 'AbortError') { console.log('Download aborted');} else { console.error('Error fetching file:', error);} } // Um den Download jederzeit abzubrechen controller.abort();}
Dieses Projekt ist unter der Apache 2.0-Lizenz lizenziert. Einzelheiten finden Sie in der LICENSE
Datei.