ファイルをアップロードするためのweb.pyアプリケーションで作業しています。展開に実際の問題があります。基本的には、ユーザーに「アップロードされたパーセンテージ」を与えたいと思いますが、これはmod_wsgiにデプロイされたときにひどく混乱しているようです。メインアップロードは次のように動作します。web.py + mod_wsgiファイルのアップロードで問題が発生する
out = open(path, 'wb', 1000)
while (True):
packet = fileU.file.read(1000)
if not packet:
break
else:
out.write(packet)
sessions[code].progress += 1
out.close()
'セッション'は、セッションを追跡するオブジェクトを含むグローバル辞書です。現在の進捗状況を取得するには、毎秒クライアントからのGETリクエストを使用して、特定のセッションの現在の進捗状況を取得します。
現時点での問題は、これは小さなアップロードでのみ機能することです。約100kbを超えるものは進捗変数を増加させないようです。この値は、ループの外側に(またはread()が呼び出される前に)配置されている場合、またはファイルがかなり小さい場合には、確実にインクリメントされます。
wsgiが大きなファイルに対して新しいスレッドを開いているため、グローバルカウンタがアップロードスレッドのローカルのみになる可能性はありますか?それは別のものかもしれません。
セッションにカスタムデータを保存する方法はありますか。また、特定のユーザーの要求でセッションを取得する方法を見つけることができないようです。 – seadowg
セッションオブジェクトには基本的にdictインターフェイスがあり、好きなデータを格納できるはずです。たとえば、あるリクエストに対して[]というセッションを設定すると、別のリクエストでセッション[]を取得できるはずです。あなたは多かれ少なかれ、*本当に*グローバルな辞書と考えることができます。 –
d0nut