2012-03-30 19 views
0

私はオンラインドキュメント管理システムを開発しています。ユーザーは複数のドキュメントを1つのZIPファイルとしてダウンロードできます。これらのファイルは大量になってメモリ内で完全に処理されるため、この場合は一時ファイルを使用します。その一時ファイルは、org.apache.tomcat.sendfileが一時ファイルに設定されたHttp11NioProtocolを使用してクライアントに送信されます。問題は、クライアントブラウザにファイルを転送した後で、サーバーが一時ファイルで停止してしまうことです。Tomcat NIOとSendfileでファイルをクリーンアップする

c。 deleteAfterExitやtempFileManagerを使用することは可能ですが、ファイルが完全に転送されたり、一時ファイルをクリーンアップするために使用できるコールバック関数があると、ハンドラ関数を登録する方法があります。

答えて

0

Linuxで実行している場合は、転送が完了していなくてもファイルを安全に削除できます。 tomcatのsendfileコードでファイルを開くことができなければならないので、すぐにファイルを削除することはできませんが、おそらく1分後にファイルを安全に削除できます。

+0

これを行うことは、ダウンロードを設定してから1分後にファイルを削除するという割り当てで、tempfileManagerを使用してファイルを登録することとは大きく異なります。私はむしろ、ダウンロードが完了したらすぐに何らかのアクションを行い、x分後にファイルが削除可能であることを望みません – kali

関連する問題