2009-04-17 3 views
2

나는 파일을 .jpg로 변환하고 간단한 HTML 페이지에 표시하는 python CGI 스크립트를 작성했습니다. 이 .jpg 파일을 사용하여 폴더를 어지럽히고 싶지는 않습니다. 따라서 tempfile.NamedTemporaryFile을 사용하여 변환 된 .jpg 출력을 저장하는 파일을 만들었습니다. 모든게 잘 작동하지만 페이지가 표시된 후에이 파일을 제거하고 싶습니다. 현재 나는 delete = False로 설정되어 있지만 손상된 img 링크를 발생시키지 않고 파일을 제거하는 것처럼 보일 수 없습니다.CGI가 표시하는 임시 파일 (이미지)을 제거하려면 어떻게해야합니까?

답변

3

cgi 스크립트에서 파일을 삭제할 수 없습니다. html 페이지는 스크립트 실행이 끝난 후에 만 ​​사용자에게 보냅니다. 그리고 사용자 브라우저는 html을 파싱하고 jpg 파일을 가져옵니다.

가장 간단한 옵션은 임시 파일을 하위 디렉토리에 쓰고 그 디렉토리를 주기적으로 정리하는 것입니다 (지난 몇 분 만 살면됩니다). 이 프로세스를 개선 할 수있는 방법이 있지만 무의미합니다.

고급 옵션 (시나리오에 따라 다르 겠지만)은 "get jpg"요청에 따라 스크립트를 실행하도록 웹 서버를 구성하는 것입니다. 그런 다음 스크립트를 통해 jpg를 스트리밍 할 수 있습니다. 그렇게하면 jpg가 언제 가져 왔는지 알 수 있습니다. 이 스크립트에서는 jpg 파일을 삭제하기 위해 비동기 적으로 하위 스크립트를 호출 할 수 있습니다.

관련 문제