【发布时间】:2019-02-11 10:05:39
【问题描述】:
我试图更准确地了解 Http 连接如何与 Flask 一起工作,因此我尝试编写一个非常简单的应用程序和另一个简单的请求连接:
app = Flask('file-streamer')
@app.route("/uploadDumb", methods=["POST"])
def upload_dumb():
print("Hello")
return Response(status=200)
然后我通过请求向端点发送一个大文件(1.5 GB):
url = "http://localhost:5000/uploadDumb"
values = {"file": open(file, "rb")}
r = requests.post(url=url, data={}, files=values)
我希望 Flask 等待整个文件被发送,即使该文件是无用的。然而,这不是正在发生的事情,而是 Flask 非常快地返回 200 响应,这会导致我的第二个脚本出现 BrokenPipeError。
有人可以向我解释这里发生了什么吗?
【问题讨论】:
-
你确定是 Flask 而不是 Requests 吗?您是否尝试过启用调试日志记录?您是否尝试过使用 curl 等其他工具上传文件?
-
是的,我试过用django实现同一种最小的app,没有问题,就是等待发送文件。我也尝试使用 requests 和 requests-toolbelt,但问题仍然存在。
标签: python flask python-requests