【Http】大容量ファイル転送 | tcpとの関係

TCP リクエストと HTTP リクエストの関係

TCP 接続は複数の HTTP リクエストに対応でき、TCP 接続が切断されない限り、HTTP リクエストを送信できます。

Django は大きなファイルを分割してダウンロードします

seekファイルの一部を取得してからFileResponseファイルを返す方法 (返されるデータは少し奇妙に見えます) は使用できませんが、streamingHttpResponse次のように試すことができます。
Django はストリーミング レスポンスを使用してビデオ ストリーミング
HttpResponse を処理しますDjango はストリーミング レスポンス ストリーミングHttpResponse を使用してビデオを処理します

整理参考リンク:
冷蔵庫に象を入れる:大容量ファイルを転送するためのHTTPメソッド(HTTPプロトコルの具体的な仕様)

Django のアップロードとダウンロードには、最も一般的な検索結果があります

大きなファイルの部分アップロード
[サーバー側]:
[クライアント側]: 部分アップロード プラグイン。例: webuploader。大きなファイルを分割してアップロードする、ブレークポイントでアップロードを再開する、比較的完全な状態にするための 2 回目の転送、
ブレークポイントでアップロードを再開する、ハッシュなどはすべて考慮されます。

大きなファイルを分割してダウンロードする
[サーバー側]: http の範囲ヘッダーを使用します。参照リンクについては、上記を参照してください。
[クライアント]: 最初にファイル サイズを取得してから、要求をリサイクルし、ダウンロードしたすべてのファイルを zip 全体にマージします。手を触れて、大きなファイルの断片のダウンロードを完了させます (このリンクを使用すると問題が発生します。ダウンロードしたすべてのファイルの断片がメモリに保存され、メモリが爆発し、3 または 4G を超えるファイルは機能しません) )

フロントエンド ダウンロード ファイルのいくつかの提案されたソリューション:
大きなファイルをダウンロードするためのフロントエンド JS ソリューション (主に 2G 未満).
リンクは上記に記載されています:巨大なファイルの保存 ( 2GB + )
2 つのプラグイン、fileSaver と strameSaver StreamSaver があります。 jsを参照することができます
保存する 巨大なファイルのリンクに記載されているものがありますFilesystem API. 検索後、この名前は破棄する必要がありますFile System Access API. 関連リンク: ile System Access API ドキュメントの概要 (JavaScript はローカル ファイルを操作します)

中心的な考え方は正しいが、役に立つかどうかは不明: aiohttp 非同期 http request-5. 大きなファイルをダウンロードし、ダウンロード中に保存する (メモリを節約する)
文章の意味はわかりませんが、非常にプロフェッショナルに見えます:フロント エンドは、ブラウザのブロブを単独で突破します Sao は、ファイルを保存するために RAM サイズ制限を使用してプレイします。

おすすめ

転載: blog.csdn.net/qq_42438771/article/details/126280655