Назад | Перейти на главную страницу

Поиск и удаление старых неиспользуемых изображений?

По мере продвижения наших веб-сайтов, основанных на содержании, в нашу папку изображений попадает множество изображений, но мы редко встречаем тех, кто удаляет свои файлы, когда они им не нужны, а это означает, что мы получаем огромный список изображений в одна папка, которую очень сложно очистить.

Есть ли инструмент, который позволяет мне узнать, запрашивалось ли изображение из Интернета в последние (n) месяцев?

В более общем плане, как вы контролируете свои папки с изображениями? Какую политику вы навязываете разработчикам для очистки? Какие меры вы принимаете, чтобы решить, что уйдет, а что останется, если вы окажетесь в неконтролируемой ситуации?

Позволяет ли ваш инструмент управления веб-контентом сообщать или запрашивать, какие изображения связаны в контенте сайта? Или вы можете выполнить строковый поиск расширений файлов изображений на страницах с содержанием? Если это так, этого отчета в сочетании со списком изображений из журналов веб-сервера за последние 12 месяцев (или дольше, в зависимости от вашего сайта) должно быть достаточно для определения необходимых изображений. Это предполагает, что запросы файлов изображений появляются в журналах вашего сервера. Если у вас есть среда сценариев, доступная на сервере, вы можете сценарий для удаления изображений, не включенных в эти списки. Вы также можете создать вторую папку и переместить туда все необходимые изображения и выполнить указанное вами переименование.

Конечно, сначала сделайте пару резервных копий и проверьте, работает ли она!

Другой подход, в зависимости от размера сайта, - это добавить больше хранилища. Это может быть дешевле и быстрее, чем тратить время на сортировку кучи файлов изображений. Это также предотвращает любые последующие проблемы, когда изображения были связаны напрямую с других сайтов или связаны с важным, но редко используемым контентом.

почему бы не запускать скрипт через фиксированные интервалы времени, чтобы проверять состояние последнего доступа к файлам и удалять их в зависимости от параметра устаревания?

вы можете оценить время доступа в unix-подобных системах, используя find -atime <arg> где arg - количество дней, где +/- означает больше или меньше соответственно

так что вы можете кормить вывод find -atime +90 "*.jpg" например, для поиска изображений jpg, к которым последний раз обращались более 90 дней назад, в цикл for, где вы передаете его, например, переменной $ f и зацикливаете на них с помощью rm команда

Два простых способа делать то, что вы хотите.

  1. Проанализируйте журналы веб-сервера (например, с помощью Perl) и создайте список файлов, к которым был осуществлен доступ, а затем удалите все остальные. Не мой любимый способ делать что-то.
  2. Проанализируйте ссылки на вашем веб-сайте (если сайт построен таким образом, чтобы это было практично) и удалите все файлы, на которые нет ссылок. Гораздо предпочтительнее, когда это возможно, поскольку учитывается редко используемый контент.

После поиска файлов журналов выяснилось, что главный сервер IIS не регистрирует никаких данных из-за проблем с производительностью и некоторой «политики»! закончил тем, что создал свой собственный журнал "часов", в котором я читаю все входящие запросы, проверяю, находится ли он в папке изображений, и открываю текстовый файл, добавляю URL-адрес изображения и urlReferrer. Через несколько месяцев я смог сделайте обоснованное предположение о том, какие папки должны быть

спасибо всем за ваш вклад в это