在Flask中,从另一个请求打开上传的文件

时间:2012-06-23 15:30:09

标签: python multithreading flask wsgi

我正在开发一个网络服务,通过http请求联系所有内容

部分内容在python中实现

问题如下:

@app.route("/p")
def request_file():
    result = send_http_request()
    if result:
        load_file()            
    return render_template("upload_form.html")

@app.route("/p")
def accept_file():
    f = request.files['pic']
    save_file(f)
    return "ok"

这是我正在做的伪代码,函数请求文件联系外部服务,它通过发送包含报告文件的表单发布请求进行响应,此发布请求由accept_file处理,保存文件(我确保调用flush ()和os.fsync()完全写入磁盘),然后它重新运行ok,这导致终止在request_file中发出的http请求

然后request_file尝试加载accept_file保存的文件,它失败了,它告诉我没有带有该名称的文件,请求完成后,该文件可用于后续请求

我很确定我在保存后尝试加载文件,并且我正在刷新磁盘并调用os.fsync()以确保写入磁盘

什么是Hapenning?怎么了?我没有头绪

我必须以这种方式工作,因为我的应用程序依赖于外部服务,外部服务仅通过使用文件进行多部分表单请求来响应

我如何访问该文件?

真正的问题是什么?它与线程有关吗?通过上下文暴露的烧瓶全局?或者什么?

感谢

0 个答案:

没有答案