@HPositron

Как почистить Temp/ после multipart.File?

Web-сервис написан на Golang, развернут на Windows Server 2019. Web-сервис принимает от пользователей файлы через multipart form и обрабатывает как multipart.File. Заметил что в Temp/ скапливаются копии отработанных файлов и занимают дисковое пространство. Можно ли как-либо подчищать этот кэш прямо из Golang?
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
@HPositron Автор вопроса
Оказывается в Golang все уже предусмотрено, просто вызовите Request.MultipartForm.RemoveAll() после обработки нужных вам данных. Этот вызов удалит временные файлы созданные во время обработки запроса (если файл обрабатывался в буфере все ещё проще - его соберет Garbage Collector)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@calculator212
Обычно имена временных файлов формируются по какому либо шаблону, поэтому можно просто проходиться скриптом и удалять имена файлов, которые попадают под этот шаблон, это не самый надежный вариант, но иногда может подойти. Если хотите надежный вариант, то можно в самом сервисе запоминать имена временных файлов и передавать их фоновой программе/горутине, в момент когда они больше не нужны, которые подчистят временную директорию.
Ответ написан
Комментировать
@mayton2019
Bigdata Engineer
Нельзя удалять файлы исходя просто из своих предположений о их ненужности. Я знаю только один кейс когда Temp очищается. Это перезагрузка ОС. В остальных случаях нам не ведомо нужны они приложению или нет.

Владение файла процессом - тоже не факт нужности или ненужности. Temp-файл может быть поднят повторно.

Можно ли удалять из из Golang/.../X или другого языка? Ответ - да можно после того как мы разберемся в их жизненном цикле. Как их удалять? Горутинами или функциями бох знает чем - не имеет значения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы