私は、ユーザーが自分のファイルをダウンロードするためのURLを投稿できるWebアプリケーションを持っています。私はlibcurlを使用しています。ファイルサイズ制限を適用するためにContent-Lengthというレスポンスをチェックしています。サーバーを持ち去ってしまった人の中には、引き続きアップロードが行われ、最終的には使用可能なスペースをすべて埋めることになり、サーバーが詰まることが心配です。サイズがContent-Lengthより大きい場合、libcurlはダウンロードファイルを中止しますか?ファイルサイズがContent-Lengthを超えた場合、libcurlはダウンロードを中断しますか?
2
A
答えて
2
はい、(ほとんど)そうです。 Content-Lengthフィールド(使用される場合)は、この特定のレスポンスの本文のサイズを示すためにHTTPがどのように使用されるかです。接続は開いたままにしておき、次の要求に再利用されるため、HTTPクライアントはこれ以上読み取ることができません。
これは基本的なHTTP 1.1の機能であり、詳細はRFC7230にあります。また、カールコードを読みたい場合は、Content-Lengthヘッダーのマッチングと解析のためのlib/http.cソースコードを確認してください。 lib/transfer.cなどで 'maxdownload'フィールドが使用されています。
関連する問題
- 1. ファイルサイズが1GBを超えると、Gson.toJsonがNullPointerExceptionをスローする
- 2. 名前のスペースがダウンロードを中断していますか?
- 3. 長さが限界を超えた場合のブロック入力
- 4. 値が100,000+を超えた場合のCintオーバーフローエラー
- 5. SVG textpath、テキストがパスを超えたときを判断する
- 6. エラー/例外が発生した場合の中断の問題?
- 7. libcurlでダウンロードしたファイルを読む
- 8. 「中断した」Hadoopジョブを中断した場所から再開することは可能ですか?
- 9. コマンドプロンプト:ファイルサイズが1024KBを超えるファイルdirファイル
- 10. アプリケーションが中断した場合、ActiveMQでキュー内のメッセージを回復する方法はありますか?
- 11. 特定のシステムサイズを超えた場合のOpenCLランダムカーネルの動作
- 12. ファイルサイズでGigを超えてファイルをアップロードするasp.net?
- 13. クライアントが切断されている場合、WCFサーバータスクを中止します。
- 14. ソケットを開く場合にスレッドを中断する方法は?
- 15. resumeableファイルのダウンロードの問題 - >にファイルサイズがInt32.MaxValueを(2GB)を超えている(大きなファイル)
- 16. レプリケートするロブデータの挿入長が最大値を超えた場合65536
- 17. 多数の要素を持つリストを使用した場合、時間制限を超えましたか?
- 18. クローズが中断された場合、または失敗した場合、fdの状態はどうなりますか?
- 19. トリガーネストレベルを超えましたか?
- 20. ファイルを削除した後でも、開発ログファイルがGitHubのファイルサイズ制限を超えています
- 21. サイトがIISサブフォルダにある場合MVC2カスタムルーティングが中断します
- 22. Flashがファイルをダウンロードした場合、それはキャッシュされていますか?
- 23. 中断された場合にプログラムがデータを失うのを防ぐ方法を教えてください。
- 24. テキストがテキストブロックの境界を超えた場合のフォントサイズの変更
- 25. Excelシートの行数が65536行の制限を超えた場合
- 26. 値がthrsoldを超えた場合、メールを生成する方法に関するサンプルコードがあります。
- 27. ファイルサイズのダウンロード中にエラーが発生する
- 28. CouchDB Views:created_at合格値を超えました
- 29. ResolveHostNameAsyncはトゥームブースティングを中断しますか?
- 30. Oracleで合計行が10を超える場合、表から行を取得する方法は?
あなたは簡単なテストケースをまとめて試してみることができます... 100kを出力するスクリプトと50kしか期待しないダウンロードスクリプト。 –
@MarcB大丈夫私はそれをし、それはContent-Lengthで止まった。ここまでは順調ですね。しかし、私は本当に権威ある答えに感謝します。ファイルサイズをチェックするソースへのリンクと同様です。何らかの他のヘッダーが存在する可能性があるため、何か(すべて)を変更することができます。 –
@MarcB私は、ファイルサイズよりも小さいContent-Lengthヘッダを設定したので、ストリーミングを止めたのは私のテストサーバ(Webrick)だったかもしれません。そして、libcurlは受信を停止しませんでした。どのように私は知るべきですか? –