요청이 완료되면 Tomcat이 파일을 삭제합니까?
-
09-12-2019 - |
문제
나는 매우 이상한 문제에 봉착했습니다.나는 사용하고있다 commons-fileupload
(1.2.1) 내 웹앱(Tomcat 7.0.23에서 호스팅됨)에서 파일 업로드를 처리하고 distributable
플래그가 설정됨)일단 내가 DiskFileItem
내 인스턴스 DiskFileItemFactory
(아니요 FileCleaningTracker
), 나는 그것을 사용합니다 write
파일을 저장하는 방법(파일이 저장되는 동일한 디렉토리에 있음) DiskFileItemFactory
스트리밍할 때 파일을 디스크에 써야 하는 경우에 사용하도록 구성되었습니다.문제는 이 새 파일(내가 명시적으로 생성하고 이름을 지정함)이 요청 처리가 완료된 후 삭제된다는 것입니다.상상할 수 있듯이 이는 파일에 다시 액세스해야 할 때 문제가 됩니다.
관련성이 있을 것 같은 재미있는 정보:
- 문제의 디렉토리는 서블릿 컨텍스트의 기본 임시 디렉토리도 아니고 Tomcat 디렉토리 아래에도 없습니다.
- 대체 코드 경로에서 해당 파일을 즉시 복사하고(다른 요청이 아님) 저것 사본은 삭제되지 않습니다.
- 내가
chmod a-w
요청이 완료되기 전에 파일이 삭제되었더라도 요청이 완료되면 삭제됩니다.
도움을 주셔서 감사합니다.
해결책
그리고 범인은?길 잃은 finalize
9년 이상 전에 "정리"를 수행한 방법입니다.
제휴하지 않습니다 StackOverflow