Flaskサーバー(サーバー#01と呼ぶ)を別のサーバー(サーバー#02)で「プロキシ」しようとしています。一つのことを除いてうまくいく:Server#01がsend_from_directory()を使うとき、私はこのファイルを再送する方法を知らない。Flaskが応答としてストリームを送信しました
私の古典「プロキシ」ファイルで
result = requests.get(my_path_to_server01)
return Response(stream_with_context(result.iter_content()),
content_type = result.headers['Content-Type'])
応答、それは...時間を取っているので、私は多くのことを試してみました。働くものである:
result = requests.get(my_path_to_server01, stream=True)
with open('img.png', 'wb') as out_file:
shutil.copyfileobj(result.raw, out_file)
return send_from_directory('./', 'img.png')
私は私の応答(「結果」変数)を「リダイレクト」、または私のファイルのストリームをコピー/送信したいと思います。とにかく私は物理的なファイルを使用したくないのです。なぜなら、それは私の心の中で正しい方法ではないように思われるからです。そのために起こるすべての問題を想像することができます。
私は "chunk_size = 10 * 1024"を探していました。それで、私のクライアントは1MB以下の画像をロードするのに108秒かかりました。今は121msです。ストリームは必要ありません、私はそれを間違って使用しました。あなたの助けのためのThx –
@BenjaminK:大きなファイルがある場合、ストリーミングはあなたを助けます。私は1GBを超えるファイルでテストしていました。この影響は1MBファイルには気付かれません。 – mhawke