Очистка временной папки «Загруженные файлы» в asp.net - PullRequest
0 голосов
/ 11 августа 2011

Мне было интересно, что лучше всего использовать для следующего сценария:

Пользователь загружает файл на странице A. Файл хранится в уникальной временной папке (на основе GUID пользователя).Пользователь перенаправляется на страницу B, где выполняется проверка файла, и в конечном итоге перенаправляется на страницу C.

Все эти страницы используют файлы, загруженные пользователем.

Очевидно,в какой-то момент я хочу удалить эти файлы, чтобы сервер не наполнился временными файлами.У меня есть пара решений, которые приходят на ум, но мне было интересно, есть ли лучшее решение / какое из них лучшее .:

  • Решение 1: Удалитьфайл после завершения процесса (в данном случае на странице c).Я не думаю, что это хорошее решение, потому что вполне возможно, что пользователь отменит свое действие где-то на полпути (страница B).Это по-прежнему приводит к тому, что временные файлы остаются на сервере

  • Решение 2. При загрузке страницы A выполните проверку в главной временной папке и удалите все файлы и папки, которыене использовались в последние x дней

  • Решение 3 (которое, вероятно, самое чистое): напишите небольшое консольное приложение, которое будет выполнять то же самое, что и решение 2, и запланируйте его с окнамиПланировщик задач запускается один раз в день ночью

  • Решение 4: То же, что 3, но в службе Windows.Я думаю, это немного излишне - создавать службы Windows для этого.

Теперь я испытываю желание сказать, что 3 - самый чистый, но так как это кажется немного излишним дляУ меня есть приложение, я думаю, что комбинация решений 1 и 2. - хорошая альтернатива.

Есть предложения или отзывы?

Спасибо!

1 Ответ

0 голосов
/ 11 августа 2011

Я бы сказал, что сочетание идей 1 и 3 великолепно. Позвольте странице удалить файл после завершения задания (по мере необходимости очищайте, что вы можете, чтобы не тратить место на диске). Затем создайте запланированное задание «резервное копирование», которое будет запускаться один раз в день в течение наименее активного времени вашего веб-сайта, и удалите все запасные файлы, которые старше установленного вами порогового значения.

Вам не нужны накладные расходы на длительный процесс, который удаляет файлы один раз в день (решение 4).

Решение 2 особенно выделяется для меня как плохо , поскольку оно снижает воспринимаемую производительность веб-сайта - удаление файла занимает много времени, особенно во время перезаписи диска (HDD).

...