Как я могу удалить временный файл (изображение), который отображается CGI? - PullRequest
2 голосов
/ 17 апреля 2009

Я написал Python CGI-скрипт, который конвертирует файлы в .jpgs и отображает их на простой HTML-странице. Я не хочу загромождать папки этими файлами .jpg, поэтому я использовал tempfile.NamedTeilitaryFile, чтобы создать файл для хранения преобразованного вывода .jpg. Все отлично работает, но я хочу удалить этот файл после отображения страницы. В настоящее время я установил delete = False, но не могу удалить файл, не вызвав неработающую ссылку img.

1 Ответ

3 голосов
/ 17 апреля 2009

Вы не можете удалить файл из вашего скрипта cgi. Потому что HTML-страница отправляется пользователю только после завершения работы вашего скрипта. А затем браузер пользователей анализирует HTML и получает файл JPG.

Самый простой вариант - записать временные файлы в подкаталог и периодически очищать этот каталог (живя в нем только последние несколько минут). Есть способы улучшить этот процесс, но они, вероятно, бессмысленны.

Более сложный вариант (который, вероятно, также бессмысленен, в зависимости от вашего сценария) - настроить веб-сервер для запуска сценария по запросу «get jpg». И тогда вы можете транслировать JPG через ваш скрипт. Таким образом, вы будете знать, когда JPG был выбран. И в этом сценарии вы можете асинхронно вызывать индекс для удаления файла jpg.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...