2

Pylons の HTTP 応答にファイルをストリーミングするのにまだ苦労しています。元の問題に加えて、Content-Length ヘッダーを返すことができないため、大きなファイルの場合、クライアントはダウンロードにかかる時間を見積もることができません。私はもう試した

response.content_length = 12345

そして私は試しました

response.headers['Content-Length'] = 12345

どちらの場合も、HTTP 応答 (Fiddler で表示) には Content-Length ヘッダーが含まれていません。Pylons にこのヘッダーを返させるにはどうすればよいですか?

(ああ、ファイルをストリーミングするアイデアがある場合は、元の質問に返信してください - 私はそこにアイデアがありません。)

編集:一般的な解決策ではありませんが、静的ファイルをFileApp提供するために Content-Length ヘッダーを送信できます。動的コンテンツの場合、Alex Martelliの回答が唯一の選択肢のようです。

4

2 に答える 2

1

ここには、欠落している場合にすべての応答がコンテンツ長ヘッダーを取得できるようにするミドルウェア コードが少しあります。応答に他のヘッダーを設定するように微調整することができ (「X-The-Content-Length」など)、ミドルウェアはそれを使用して、後者が欠落している場合にコンテンツの長さを作成します。私はすべてのことを pylons のバグ (コンテンツの長さに対する無頓着な態度!) の回避策と見なしていますが、どうやら pylons の作成者はそのスコアについて私に同意していないので、少なくとも回避策があると便利です!-)

于 2010-05-06T02:00:27.440 に答える
0

試す:

response.headerlist.append((str("Content-Length"), str(" 123456")))
于 2010-05-06T02:28:03.610 に答える