Tomcat NIO и Sendfile очищают файл send - PullRequest
0 голосов
/ 30 марта 2012

Я работаю над онлайновой системой управления документами, где пользователи могут загружать несколько документов в виде одного файла ZIP. Эти файлы могут стать большими для обработки в памяти, поэтому в этом случае мы используем временный файл. Этот временный файл затем отправляется клиенту с использованием Http11NioProtocol с org.apache.tomcat.sendfile, установленным для временного файла. Проблема в том, что после передачи файла в браузер клиента сервер застрял с временным файлом.

Ofc. можно использовать deleteAfterExit или какой-то другой tempFileManager, но мне нужен способ зарегистрировать функцию-обработчик, когда файл полностью передан, или есть какая-то функция обратного вызова, которую можно использовать для очистки временных файлов?

1 Ответ

0 голосов
/ 30 марта 2012

Если вы работаете в Linux, вы можете безопасно удалить файлы, даже если передача еще не завершена. Вы не можете сразу удалить файл, потому что код sendfile tomcat должен открывать файл, но вы, вероятно, можете безопасно удалить его через минуту.

...