Node.JSセグメントレジュームダウンロード:Nginx設定ファイルセグメントダウンロードの実装方法 function_node.js

亚连
リリース: 2018-05-31 09:58:37
オリジナル
2391 人が閲覧しました

このタグを Node.JS で構成して、ファイルのセグメント化されたダウンロードを実装できます。この記事では、Node.JS の分割ダウンロードについて紹介します。Nginx 設定ファイルの分割ダウンロード機能を実装する方法を説明します。必要な友達は参考にしてください。

Html5 では、ファイルの分割ダウンロードを実装するための新しい Range タグが提供されています。このタグを Node.JS で構成して、ファイルのセグメント化されたダウンロードを実装できます。

ヘッダータグ

Requestリクエストヘッダー: 3744以降のファイルコンテンツをダウンロードします

range: bytes=3744-
ログイン後にコピー

Return Response Header: ファイルの合計長は15522643バイトです

accept-ranges': 'bytes'
content-range': 'bytes */15522643'
ログイン後にコピー

Nginx構成

まず、node.js 側で add_header Accept-Ranges バイトを追加するのは非常に簡単です。範囲ヘッダーを含むリクエスト情報を送信すると、nginx は範囲に関連する情報を返します:

これは完全な応答ヘッダーです。ここでの

はファイルの全長ではなく、現在の範囲の長さであることに注意してください。

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;
 }
 ...
}
ログイン後にコピー

content-length このヘッダーのコンテンツ範囲に基づいてファイルの合計サイズを取得できます。

Node.JS 実装

この例では、まずローカルで半分ダウンロードされたファイルを検出し、次に「r+」読み取り/書き込みモードでファイル ストリームを作成し、応答ストリームをファイルに書き込みます。 ここでは、ステートメントファイルに範囲サポートを追加します。

{ 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' }
ログイン後にコピー

ヘッダーを返す

nginx をリクエストすると、206 や 416 などの他のステータス コードが返される場合があり、その意味は次のとおりです: 206 部分的なコンテンツ 部分的なファイル コンテンツを返します

4 16要求された範囲が満足できません

要求された範囲がファイル サイズを超えています

上記は、皆さんのためにまとめたものです。今後皆さんのお役に立てれば幸いです。

関連記事:


vueマルチエントリファイル構築 vueマルチページ構築例の説明

Angularメソッドレベルのキャッシュアノテーション(デコレータ)

Vueルーティング変更ページデータの解決策 リフレッシュ問題


以上がNode.JSセグメントレジュームダウンロード:Nginx設定ファイルセグメントダウンロードの実装方法 function_node.jsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!