生成されたファイルに名前を付けてサーバーに保存する最良の方法は何ですか?ユーザーが次の 5 分程度でファイルを要求した場合はそれを返し、それ以外の場合はエラー コードを返しますか? 私は Python と Webapp2 を使用しています (ただし、これはどの WSGI サーバーでも機能します)。
1 に答える
0
サーバー上でクライアントが作成したものを使用することをお勧めしUUID
ます。サーバーがそれを保存すると、クライアントにエラー (再試行を強制) が返されます。ほとんどの場合、UUID は完全に一意であり、既に保存されているものと衝突することはありません。その場合、クライアントは新しい名前を選択して再試行できます。これを少し改善したい場合は、再試行の間に乱数ミリ秒待機して、衝突が繰り返される可能性を減らします。
それが、この特定の、安全でない、短期的なストレージの問題に対する私のアプローチです。
削除に関しては、サーバーの責任で定期的に削除し、基本的には 5 分以上経過したファイルがないかどうかを確認して削除します。進行中のダウンロードがファイルを開いたままにしている限り、中断することはありません。
クライアントを制御したままにしたい場合、クライアントがオフラインのときに削除を強制する簡単な方法がないため、ファイルのリストを日付順に保持して削除することをお勧めします。
- 長時間実行することが予想される場合は、必要に応じてバックグラウンド スレッドで
- 起動時 (これらをディスクに永続化する必要があります)
- シャットダウン時 (ディスクに永続化する必要はありません)
ただし、これらのメカニズムはすべて、クラッシュしたり永続的な情報を失ったりした場合に不要なファイルをサーバーに残す傾向があるため、サーバーの責任で削除することをお勧めします。
于 2013-03-23T13:32:25.160 に答える