1

httpリクエストを介してすべてのものに接続するWebサービスを開発しています

その一部は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() を呼び出してディスクへの書き込みを確認しています

ハプニングとは?なにが問題ですか?私は見当もつかない

私のアプリケーションは、ファイルでマルチパートフォームリクエストを行うことによってのみ応答する外部サービスに依存しているため、そのように作業する必要があります

どうすればファイルにアクセスできますか?

本当の問題は何ですか?それはスレッドに関係していますか?コンテキストを介して公開されたグローバルをフラスコにするには?または何?

ありがとう

4

0 に答える 0