Heim > Web-Frontend > js-Tutorial > Download des Node.JS-Segments fortsetzen: Implementierungsmethode für den Download des Nginx-Konfigurationsdateisegments function_node.js

Download des Node.JS-Segments fortsetzen: Implementierungsmethode für den Download des Nginx-Konfigurationsdateisegments function_node.js

亚连
Freigeben: 2018-05-31 09:58:37
Original
2419 Leute haben es durchsucht

Dieses Tag kann in Node.JS konfiguriert werden, um das segmentierte Herunterladen von Dateien zu implementieren. Dieser Artikel stellt Ihnen das segmentierte Herunterladen von Node.JS vor: So implementieren Sie die segmentierte Download-Funktion von Nginx-Konfigurationsdateien. Freunde, die sie benötigen, können darauf verweisen.

Html5 bietet ein neues Range-Tag zum Implementieren der Datei Teile. Dieses Tag kann in Node.JS konfiguriert werden, um das segmentierte Herunterladen von Dateien zu implementieren.

Header-Tag

Anforderungsheader: Dateiinhalt nach 3744 herunterladen

range: bytes=3744-
Nach dem Login kopieren

Return Response Header: Gesamtdateilänge 15522643 Bytes

accept-ranges': 'bytes'
content-range': 'bytes */15522643'
Nach dem Login kopieren

Nginx-Konfiguration

Zuerst müssen Sie Nginx so konfigurieren, dass es die Rückgabe von Bereichs-Tags unterstützt. Es ist sehr einfach, add_header Accept-Ranges-Bytes hinzuzufügen Wenn der Knoten nach der Aktivierung Anforderungsinformationen mit dem Bereichsheader sendet, gibt Nginx die bereichsbezogenen Informationen zurück:

Dies ist ein vollständiger Antwortheader. Beachten Sie, dass der

hier nicht der ist Gesamtlänge der Datei, sondern die Gesamtlänge der Datei Die Länge des aktuellen Bereichs.

server {
 listen 80;
 server_name adksdf.com;
 location ~ ^/(img/|js/|css/|upload/|font/|fonts/|res/|icon) {
  add_header Access-Control-Allow-Origin *;
  add_header Accept-Ranges bytes;
  root /var/www/...;
  access_log off;
  expires max;
 }
 ...
}
Nach dem Login kopieren

content-length Die Gesamtgröße der Datei kann anhand des Inhaltsbereichs in diesem Header ermittelt werden.

Node.JS-Implementierung

Dieses Beispiel erkennt zunächst halb heruntergeladene Dateien lokal und erstellt die Datei dann im Lese-/Schreibmodus „r+“. Modus-Stream und schreiben Sie den Antwort-Stream in eine Datei. Fügen Sie hier Bereichsunterstützung zur Kontoauszugsdatei hinzu.

{ server: 'nginx',
 date: 'Wed, 24 Jan 2018 02:43:20 GMT',
 'content-type': 'application/zip',
 'content-length': '12420187',
 'last-modified': 'Tue, 16 Jan 2018 12:09:47 GMT',
 connection: 'close',
 etag: '"5a5deb8b-ecdb53"',
 expires: 'Thu, 31 Dec 2037 23:55:55 GMT',
 'cache-control': 'max-age=315360000',
 'access-control-allow-origin': '*',
 'accept-ranges': 'bytes',
 'content-range': 'bytes 3102456-15522642/15522643' }
Nach dem Login kopieren

Header zurückgeben

Bei der Anfrage kann Nginx andere Statuscodes zurückgeben, z Sagen wir 206 oder 416, die Bedeutung ist wie folgt: 206 Partial ContentGibt einen Teil des Dateiinhalts zurück

416 Requested Range Not Satisfiable

The Der angeforderte Bereich überschreitet die Dateigröße

Das Obige habe ich für Sie zusammengestellt. Ich hoffe, es wird Ihnen in Zukunft hilfreich sein.

Verwandte Artikel:


vue-Dateikonstruktion mit mehreren Einträgen Beispielerklärung der mehrseitigen Konstruktion von Vue

Eine Winkelmethode Level-Cache-Anmerkungen (Dekoratoren)

Lösen Sie das Problem, dass Vue-Routing-Änderungsseitendaten nicht aktualisiert werden


Das obige ist der detaillierte Inhalt vonDownload des Node.JS-Segments fortsetzen: Implementierungsmethode für den Download des Nginx-Konfigurationsdateisegments function_node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage