Я пытаюсь «проксировать» мой сервер Flask (я буду называть его сервером # 01) с другим сервером (Server # 02). Он работает хорошо, за исключением одного: когда сервер # 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». без него мой клиент взял 108сек для загрузки изображения <1 мб. Теперь это 121 мс. Поток не нужен, я использовал его неправильно. Thx для вашей помощи –
@BenjaminK: потоковая передача поможет вам, если у вас большие файлы. Я тестировал файл размером> 1 ГБ. Аффект не будет замечен в файлах 1 МБ. – mhawke