Вы пробовали flask.send_file
?
http://flask.pocoo.org/docs/1.0/api/#flask.send_file
Вот подтверждение концепции:
from flask import Flask, jsonify, request, render_template, send_file
from pathlib import Path
import subprocess
app = Flask(__name__)
@app.route('/')
def proxy_file():
file_to_send = Path('/path/to/file')
if not file_to_send.exists():
# file does not exist
fetch_file()
# now we have the file
return send_file(str(file_to_send))
def fetch_file():
command = 'command to fetch the file'
process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
if __name__ == "__main__":
app.run()
Если вам нужно передать ответ от scp
не сохраняя его сначала (например, когда файл слишком велик или вы не хотите, чтобы клиент ждал загрузки файла), тогда вам нужен другой подход, который я могу уточнить, если вам нравится.