Нахождение и удаление осиротевших веб-страниц, изображений и других связанных файлов

Как говорит rcar, Вы не можете, не теряя некоторое качество, лучшее, которое можно сделать в c#:

Bitmap newImage = new Bitmap(newWidth, newHeight);
using (Graphics gr = Graphics.FromImage(newImage))
{
    gr.SmoothingMode = SmoothingMode.HighQuality;
    gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
    gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
    gr.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
}

14
задан casperOne 19 November 2011 в 16:57
поделиться

4 ответа

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

Шаг 2: Запустите инструмент, рекурсивно находящий топологию сайта, начиная со специально написанной страницы (которую вы создадите на своем сайте), которая имеет ссылка на каждую страницу в шаге 1. Один из инструментов, который может это сделать, - это Xenu's Link Sleuth . Он предназначен для поиска мертвых ссылок, но также будет отображать живые ссылки. Его можно запускать извне, поэтому установка «странного» программного обеспечения на ваш сервер не вызывает проблем с безопасностью. Вам нужно будет время от времени следить за этим, поскольку на вашем сайте может быть бесконечное количество страниц и тому подобное, если у вас есть ошибки или что-то еще.

Шаг 3. Запустите инструмент, рекурсивно отображающий ваш жесткий диск, начиная с веб-каталога вашего сайта. Я не могу придумать ни одного из них в голове, но написание одного должно быть тривиальным и более безопасным, поскольку оно будет выполняться на вашем сервере.

Шаг 4: Получите результаты шагов 2 и 3 программно матч №2 против №3. Все, что находится в № 3, а не в № 2, потенциально является страницей-сиротой.

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

1
ответ дан 1 December 2019 в 16:44
поделиться

Здесь нет ехидных комментариев ... Я чувствую вашу боль, потому что большая часть нашего сайта все еще находится в классическом ASP.

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

Во-первых, хотя это вряд ли кажется подходящим инструментом для такой работы, я использовал Microsoft Viso, чтобы помочь с этим. У нас есть Visio для корпоративных архитекторов, и я не уверен, есть ли эта функция в других версиях, но в этой версии вы можете создать новый документ, а в разделе «Выбрать тип чертежа» в папке «Веб-диаграмма» есть вариант для «Карты веб-сайта» (метрические или американские единицы - не имеет значения).

Когда вы создаете этот тип чертежа, Visio запрашивает у вас URL-адрес вашего веб-сайта, а затем сканирует ваш веб-сайт за вас.

Это должно помочь определить, какие файлы действительны. Это не идеально, но мы использовали его для поиска файлов в файловой системе, которые не отображались в чертеже Visio, а затем вытащили все решение в Visual Studio и выполнили поиск по этому имени файла. Если нам не удавалось найти его во всем решении, мы перемещали его в папку «Устаревшие» на месяц и удаляли его, если не начинали получать жалобы или ошибки 404 на веб-сайте.

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

Это должно помочь определить, какие файлы действительны. Это не идеально, но мы использовали его для поиска файлов в файловой системе, которые не отображались на чертеже Visio, а затем вытаскивали все решение в Visual Studio и выполняли поиск по этому имени файла. Если нам не удавалось найти его во всем решении, мы перемещали его в папку «Устаревшие» на месяц и удаляли его, если не начинали получать жалобы или ошибки 404 на веб-сайте.

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

Это должно помочь определить, какие файлы действительны. Это не идеально, но мы использовали его для поиска файлов в файловой системе, которые не отображались в чертеже Visio, а затем вытащили все решение в Visual Studio и выполнили поиск по этому имени файла. Если нам не удавалось найти его во всем решении, мы перемещали его в папку «Устаревшие» на месяц и удаляли его, если не начинали получать жалобы или ошибки 404 на веб-сайте.

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

Это не идеально, но мы использовали его для поиска файлов в файловой системе, которые не отображались на чертеже Visio, а затем вытаскивали все решение в Visual Studio и выполняли поиск по этому имени файла. Если нам не удавалось найти его во всем решении, мы перемещали его в папку «Устаревшие» на месяц и удаляли его, если не начинали получать жалобы или ошибки 404 на веб-сайте.

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

Это не идеально, но мы использовали его для поиска файлов в файловой системе, которые не отображались на чертеже Visio, а затем вытаскивали все решение в Visual Studio и выполняли поиск по этому имени файла. Если мы не могли найти его во всем решении, мы перемещали его в папку «Устаревшие» на месяц и удаляли его, если мы не начинали получать жалобы или ошибки 404 на веб-сайте.

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

а затем откройте все решение в Visual Studio и выполните поиск по этому имени файла. Если нам не удавалось найти его во всем решении, мы перемещали его в папку «Устаревшие» на месяц и удаляли его, если не начинали получать жалобы или ошибки 404 на веб-сайте.

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

а затем откройте все решение в Visual Studio и выполните поиск по этому имени файла. Если мы не могли найти его во всем решении, мы перемещали его в папку «Устаревшие» на месяц и удаляли его, если мы не начинали получать жалобы или ошибки 404 на веб-сайте.

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

1
ответ дан 1 December 2019 в 16:44
поделиться

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

Это нетривиальное решение, но может стать отличной утилитой для поддержания вашей среды в чистоте (и, следовательно, стоит затраченных усилий). Кроме того, вы можете повторно использовать его во всех средах (и делиться им с другими!)

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

/index.html     -> /subfolder/file.jpg
                -> /subfolder/temp.html
                -> /error.html
/temp.html      -> /index.html
/error.html     
/stray.html     -> /index.html
/abandoned.html

Затем вы можете определить все ваши «доступные» файлы, выполнив BFS на своей корневой странице.

С помощью направленного графа вы также можете классифицировать файлы по степени входа и выхода. В приведенном выше примере:

/index.html     in: 1 out: 2
/temp.html      in: 1 out: 1
/error.html     in: 1 out: 0
/stray.html     in: 0 out: 1
/abandoned.html in: 0 out: 0

Итак, вы в основном ищете заброшенные файлы с in = 0.

Кроме того, файлы с out = 0 будут терминальными страницами; что может быть, а может и не быть желательным на вашем сайте (как показывает ошибка, это страница с ошибкой).

re в основном ищет заброшенные файлы с in = 0.

Кроме того, файлы с out = 0 будут терминальными страницами; что может быть, а может и не быть желательным на вашем сайте (как предполагает ошибка, это страница с ошибкой).

re в основном ищет заброшенные файлы с in = 0.

Кроме того, файлы с out = 0 будут терминальными страницами; что может быть, а может и не быть желательным на вашем сайте (как показывает ошибка, это страница с ошибкой).

2
ответ дан 1 December 2019 в 16:44
поделиться

Был там, делал это много раз. Почему типы контента не могут убираться за собой? Лично я бы сказал примерно так:

1) Получите копию сайта, работающего в среде контроля качества.

2) Используйте selinum (или другой инструмент тестирования на основе браузера), чтобы создать набор тесты на то, что работает.

3) Начать удаление того, что должно быть удалено.

4) Запустите тесты с # 2 после удаления материала, чтобы убедиться, что оно все еще работает.

5) Повторяйте # 3 и 4 до тех пор, пока доволен.

0
ответ дан 1 December 2019 в 16:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: