Поиск и перенос неиспользуемых картинок в Upload

+40
5.54K
В продолжение темы про удаление пустых папок, сделал утилиту для глобальной очистки папки upload.
Запускается из админки.
1. Сканирует в полях всех таблиц базы (имена нужных полей можно добавлять через запятую в опциях) все ссылки на файлы изображений и записывает результат в файл /upload/links.json.
2. Сканирует файлы в папке upload и записывает результаты в файл /upload/files.json
3. Преобразует оба файла в массивы, сравнивает второй с первым и заносит результат в файл /upload/compare.json
4. Снова сканирует папку upload и файлы, совпадающие именами с содержимым /upload/compare.json, переносит с сохранением подпапок и путей в папку /deleted/upload/
5. Бонусом (если поставить галку) удаляет пустые папки и в upload и в deleted.
6. Пакует папку deleted в zip и вывешивает ссылку на скачивание.

Выглядит все это так:
Иллюстрация

Иллюстрация

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

Если Вы не знаете, как на сервере перемещать файлы и в каких полях у Вас есть ссылки на изображения — лучше ничего не трогайте и не устанавливайте это!

Компонент предоставляется "как есть" и претензии по пропавшим фотографиям любимой собачки не принимаются.
Все файлы при должном умении можно вернуть назад. Просто перенести или скопировать /deleted/upload/ в /upload/
Работает долго и нудно. Чем больше сайт, тем больше риск, что не хватит памяти.

Установка обычным способом.

Обновлено 03.07.2019
Изменена корневая папка сканирования с /upload на /upload/000

Скачать компонент unfinder с сайта instantcms.ru
Скачать компонент unfinder с яндексдиска
0
RSN RSN 6 лет назад #
Работает замечательно.
На тестовом, убрал треть мусора из upload было 150 Мб стало 97 Мб. Выберу время буду пробовать на реальном.

По улучшению
-3
Андрей Андрей 6 лет назад #
Ris, скажите пожалуйста - Удаление пустых папок в Upload - можно удалить если этот компонент поставить? Или он дополняет его?
+2
Ris Ris 6 лет назад #
Можно удалить.
Тот по хрону срабатывает каждую ночь, а этот вручную, когда захочется..
-3
Андрей Андрей 6 лет назад #
Спасибо, я понял.
0
Zau4man Zau4man 6 лет назад #
Спасибо за труды.
Обязательно воспользуюсь после тестов на локалке.
0
R161Net R161Net 6 лет назад #
Огромное спасибо! ОГРОМНЫЙ +
0
Kreator Kreator 6 лет назад #
1) Ищет с БД только в полях для картинок? или любые? поле для content где путь может быть среди текста, а так же путь к картинке там может быть относительным и абсолютным
2) Вопрос по нагрузкам планируете решать? как быть если картинок и записей в таблицах по нескольку миллионов?
+2
Ris Ris 6 лет назад #
1. В любых полях, какие укажете, в любом месте. Оно ищет сочетание букв.
0
Def Def 6 лет назад #
не совсем понял какие именно неиспользуемые картинки удаляет? как определяется неиспользуемая картинка и как она попала на сайт?
0
vikont vikont 6 лет назад #
1. Был раньше отмечен пресет, потом от него отказались, но ранее загруженные картинки уже растирожировались по пресетам и теперь картинки стали ник чему не привязаны.
2. Загружали картинку, что то пошло не так, в тексте не появилась и грузите заново, а предыдущая осталась, да еще расрирожированная по пресетам
3. Была одна картинка, потом решили заменить, а старая не удаляется!
4. Разные хвосты от дополнений и от удаленного контента.
У меня за 2,5 года накопилось 20000 мусорных картинок! Ориентировочный вес около 1 гб...
И это при условии, что большая часть картинок были оптимизированы!
+2
WS38 WS38 6 лет назад #
Спасибо за Ваш труд! Подчистили сегодня сайт. Почти гиг хлама.
0
ermakover ermakover 6 лет назад #
Супер! Спасибо за такой классный компонент. В сжатой папке 1,5 Гб картинок хлама очистил.
0
Kreator Kreator 6 лет назад #
А, я кажется понял. чтобы НЛО блоги не удаляли, надо не соблюдать правила сообщества (п.3.6) и выкладывать дополнения в каталог а наоборот.
А я то думаю чо ни так ... почему удаляют ... а тут вон оно чо
+3
Ris Ris 6 лет назад #
Вы уфолог? smile
Протестируют люди дополнение, выскажут свое мнение, выявят все нюансы - устраню недостатки и выложу дополнение в каталог.
-4
Андрей Андрей 6 лет назад #
Протестировал на поддомене, отличная работа, отличный компонент. Папка upload уменьшилась существенно. Единственное не понял, почему компонент удалил папку /upload/icons у меня в ней хранятся иконки-фавиконы для различных устройств (не критично, можно вернуть) и еще компонент удалил картинки из компонента lottery - хотя эти пресеты используются lotto_poster, bg_lott. А так всё отлично, компонент отрабатывает норм.
+1
Ris Ris 6 лет назад #
не понял, почему компонент удалил папку /upload/icons
Значит эти иконки нигде в базе данных не упомянуты.
компонент удалил картинки из компонента lottery - хотя эти пресеты используются lotto_poster, bg_lott
Посмотрите в базе, как называется поле этого компонента, где упоминаются картинки и добавьте в список полей в опциях.
+2
IamB IamB 6 лет назад #
Значит эти иконки нигде в базе данных не упомянуты.
Напрашивается ещё одно поле в Опциях - Исключить из работы папки
0
ermakover ermakover 6 лет назад #
Ну раз можно писать и о том, что не сработало - напишу.
При переносе файлов сайт ушёл в ошибку 503 и висел долго-долго, и с главной страницы было не зайти - тоже 503, пока я через SSH доступ не снял задачу переноса файлов.
Но в защиту программы скажу, что и удалённых файлов получилось в уже упакованном архиве 1,5 Гб, понятно, что сложно на виртуальном хостинге такую громаду ворочать.
Но после того как снял ошибку, увидел, что задача выполнена.
При архивации у меня тоже уходит в 503, но при этом задача архивации выполняется.
Автор очень мне помог, потому что я смог уменьшить размер пространства у хостера и платить меньше на 4 рубля в день! v
0
Ris Ris 6 лет назад #
При переносе файлов сайт ушёл в ошибку 503 и висел долго-долго, и с главной страницы было не зайти - тоже 503
Так оно всю базу перебирало. Если база большая - времени требуется много. При архивации тоже.
Можно было не убивать задачу, а просто подождать.
0
ermakover ermakover 6 лет назад #
Из папки Инстайлера в upload удаляет все пресеты фонов. Я ими не пользуюсь, но остались пустые ячейки. Пришлось вернуть.
0
ermakover ermakover 6 лет назад #
Да, и все файлы, которые загружались в Инстайлере тоже пропали. Но это дело восстановимое.
-3
Андрей Андрей 6 лет назад #
Да background-image или cover почему-то удаляет, хотя они используются
0
ermakover ermakover 6 лет назад #
Да, пипец я попал - стал смотреть - у меня большей частью изображений нет, в папке Delited в архиве половины изображений нет, а из upload они удалились. Делаю срочный откат сайтов.
0
RSN RSN 6 лет назад #
Делаю срочный откат сайтов

Бекапы при таких операциях просто необходимая вещь.
0
Ris Ris 6 лет назад #
Все правильно.
Вы операцию сканирования базы прервали. Соответственно оно не проверило все поля и не занесло картинки в список используемых.
Соответственно сочло неиспользуемыми и перенесло.
Delited в архиве половины изображений нет, а из upload они удалились
Там еще осталась неархиврированная папка делетед. В ней все есть.
Как вернуть - написано в теме поста.
Все файлы при должном умении можно вернуть назад. Просто перенести или скопировать /deleted/upload/ в /upload/
0
ermakover ermakover 6 лет назад #
Нет, я Вас ни в коем случае не обвиняю, всё вернул назад, просто мне, как пользователю, надо к процессу подходить более вдумчиво. А то я не разобравшись - ну всё чистить laugh
0
Ris Ris 6 лет назад #
Я ничего не говорю.
Просто прежде чем паниковать, сначала можно было почитать, прикинуть...
Это, кстати, всех аварийных случаев в жизни касается.
0
Ris Ris 6 лет назад #
Ищите поля в которых упоминаются эти картинки и добавляйте в опции.
Чудес в этом компоненте нет никаких. Собственным интеллектом он не обладает. Ищет текст типа "abc123dfg.jpg" в полях, которые ему указали.
-3
Андрей Андрей 6 лет назад #
а после проверки с оставшимися файлами json (4 штуки) в папке upload, что делать?
+1
Ris Ris 6 лет назад #
Удалить.
0
RSN RSN 6 лет назад #
У кого на изображениях стоял ватермарк, тоже обновляйте - сносит.
0
Ris Ris 6 лет назад #
Просто вернуть ватермарк.
0
Pocus Pocus 6 лет назад #
Точно? По идее не должен. Ватермарк же накладывается при создании картинки, т.е. в итоге это просто картинка.
0
Pocus Pocus 6 лет назад #
А, дошло. Удаляется сам ватермак, а не картинки с ним. Ступил.
0
WS38 WS38 6 лет назад #
У нас удалились все обложки с групп. А так всё на месте. Может в дальнейшем и выявим. Обложки загрузили, всё ОК. Завтра попробуем ещё один сайт очистить.
-3
Андрей Андрей 6 лет назад #
Я сейчас проверял по таблицам, чтобы картинку обложки не сносило в компоненте Группы cms_groups - поле cover нужно добавить, а у компонента Лотерея cms_lottery_lottos - поля bg_lott и poster.
И в типы файлов я добавил расширение для картинок svg.
+1
Pocus Pocus 6 лет назад #
Владельцам ivideo добавить background_img, tumb_path, cover
Для комментариев добавить content_html
Для обложек групп - cover
Для вложений нью-мессенжера - info
.......
0
Ris Ris 6 лет назад #
Для комментариев добавить content_html
Не стоит. Мускул гарантированно захлебывается.
Для обложек групп - cover
Там уже отмечено cover_image.
-3
Андрей Андрей 6 лет назад #
у альбомов cover_image, а у групп cover
-3
Андрей Андрей 6 лет назад #
У кого форум от Kreator стоит добавьте от таблицы cms_forum поле icon
0
Pocus Pocus 6 лет назад #
Ris, а что, если сканировать всю базу, все поля без разбора?
А чтобы при этом сайт не завис наглухо, после каждой таблицы делать перерывчик на перекур?
А то сейчас пытаюсь найти и составить список полей с картинками, утомительное это дело. И наверняка что-нибудь все-равно упущу.
И потом этот список надо будет постоянно обновлять при установке или удалении компонентов и полей в типах контента.

Или хотя бы в форме, поле с полями (простите за тавтологию) сделать текстовым а не строковым. Список будет удобнее делать.
0
Pocus Pocus 6 лет назад #
Или, как вариант, в список включать анти-поля, которые точно не надо обрабатывать. Типа id, title, slug, seo_keys, tags, date_pub и т.д.
А остальные сканировать на предмет картинок?
+2
RSN RSN 6 лет назад #
Здесь главное не переборщить с настройками. Если усложнить сильно будет еще хуже.
Может быть просто надо приноровится, смотреть вначале на тестовом, что именно снесет на конкретном сайте,

все это куда то записывать, что бы не забыть.
Не каждый же день чистить...
0
Ris Ris 6 лет назад #
А чтобы при этом сайт не завис наглухо, после каждой таблицы делать перерывчик на перекур?
Вот как бы его делать?
Я пробовал. Ели количество строк в таблице > 10000 - выплевывать в аякс лимит, а промежуточный результат сохранять в джейсон, а потом мержить с остальными. Что-то такая навороченная катавасия получилась, что отказался от этой затеи...
0
RSN RSN 6 лет назад #
И все таки может быть рассмотреть мой вариант в первом комменте?
Каждый тип контента создает свою папку, а в ней уже подпапки.

Если задавать сканировать только определенные подпапки, это позволит выбирать тип контента,
За один проход - один, за второй - другой и т.д.

Уже будет как то разделено. Не знаю как там в коде усложнит, но в настройках не сильно.
А у кого сайты не большие, можно и все сразу...
0
Ris Ris 6 лет назад #
Каждый тип контента создает свою папку, а в ней уже подпапки.
На самой большой таблице захлебнется.
Тут единственный вариант, если в сканируемой таблице много строк - делать цикл на яваскрипте.
Но так как в яваскрипте я некопенгаген, то требуется помощь компетентных людей, а её нету.
0
IamB IamB 6 лет назад #
Можно попробовать реализовать останов и перезапуск утилиты, перед остановом - сохранение состояния .
Для этого можно создать класс-контейнер в котором будут только данные, это те переменные, массивы, что вы используете
при работе утилиты.
Выполнили определённый объём, объект класса-контейнера(дамп состояния) сохранили в файл. Далее header('Location: утилита');
В утилите первым делом восстанавливаете из файла объект класса-контейнера и продолжаете с нужной точки.
Код ваш не смотрел, так что это только теория.
0
IamB IamB 6 лет назад #
Код PHP:
  1. <?php
  2. class Box
  3. {
  4. public $a = true;
  5. public $b = 1;
  6. public $c = ['z','x','c'];
  7. }
  8. $b0 = new Box();
  9. $b0->a = false;
  10. $b0->b = -20;
  11. $b0->c = ['q','w','e','xx'];
  12. $box = serialize($b0);
  13. $b1 = new Box();
  14. $b1 = unserialize($box);
  15. var_dump($b1);
+1
Ris Ris 6 лет назад #
Практика показала, что остановить скрипт php и запустить заново, чтобы очистилась память, не получается. Пока все до конца не отработает - все переменные и массивы висят в оперативке.
Единственный выход - цикл на яваскрипте.
А уж как сохранять результаты итераций этого цикла - дело десятое.
0
IamB IamB 6 лет назад #
Отлично, что попытались!
0
IamB IamB 6 лет назад #
Увидел в документации такую конструкцию
Код PHP:
  1. header("Location: http://www.example.com/"); /* Перенаправление браузера */
  2. /* Убедиться, что код ниже не выполнится после перенаправления .*/
Вы exit() в своём опыте импользовали?
0
Ris Ris 6 лет назад #
@IamB
На самом деле я не очень понял, как этот код применить.
Вот в этом дополнении есть в файле \system\controllers\unfinder\backend.php есть функция getLinks()
Там есть такой код:
Код PHP:
  1. $this->model->db->getRows($co['TABLE_NAME'], "{$co['COLUMN_NAME']} REGEXP '".$ex."'" , $co['COLUMN_NAME']);
Так вот если в таблице много строк - на выборку из нее не хватает памяти.
Я уже сделал цикл на яваскрипте для выборки из больших таблиц. И поиск ссылок на картинки во всех таблицах и полях базы сделал.
Сейчас допиливаю...
0
IamB IamB 6 лет назад #
Собственно, я и предлагал с помощью header('Locaition: ...') сделать некое подобие того цикла (перезапуск скрипта с новыми данными), что вы сейчас реализуете на JS. Вы попробовали и написали, что перезапустить можно, но не срабатывает "сборщик мусора" - всё висит в памяти.
Я смотрел документацию и подумал, что, exit() как раз и может запустить процесс очистки памяти перед очередной итерацией.
Если у вас получается с JS, то, извините, зря отвлёк.
0
vikont vikont 6 лет назад #
Уже будет как то разделено
более 90% всех картинок в таблице news никакое разделение не поможет!
0
Ris Ris 6 лет назад #
Это у Вас.
А у меня в постах и комментариях.
Олег Васильевич я Олег Васильевич я 6 лет назад #
Комментарий удален
0
Ris Ris 6 лет назад #
Я тоже хотел у Вас спросить? А где например в шаблоне tseso хранится путь к логотипу?
Олег Васильевич я Олег Васильевич я 6 лет назад #
Комментарий удален
Олег Васильевич я Олег Васильевич я 6 лет назад #
Комментарий удален
0
Ris Ris 6 лет назад #
Или для тех, кто мигрировал с первой ветки.
0
vikont vikont 6 лет назад #
Компонент замечательный, НО, я опять буду настаивать на том, что надо не вписывать поля, а сканировать таблицы на предмет поиска полей содержащих картинки!!!
Всегда что то забудешь, а порой и не знаешь что такое поле есть!
У меня в компоненте Ротатор баннеров, нашлись картинки в поле file - не знал!
А так же сам наплодил поля photos2 - photos4
Что еще не учел трудно сказать, все как бы нормально, но вдруг натыкаешься на отсутствие фотографий....
Учитывая большую массу файлов, все это время...
0
Ris Ris 6 лет назад #
У меня в базе 148 таблиц в которых 1455 полей.
При попытке сканирования память заполняется мгновенно.
0
Kreator Kreator 6 лет назад #
Значит надо по-немногу, не быстро, пусть подольше но качественно)
0
Ris Ris 6 лет назад #
Цикл на яваскрипте и аякс-запрос.
Сможете сделать пример, как выплюнуть данные в браузер, сменить лимит офсет и с новым лимитом запустить скрипт в бэкэнде?
0
Kreator Kreator 6 лет назад #
Это важный момент, так как данная вещь очень важна на более больших проектах и не очень актуальна на малельких.
Есть база данных с несколькими миллионами записей.
Даже пробовать не буду там запускать)
А по сути вещь очень нужная.
0
IamB IamB 6 лет назад #
Сначала для @Ris цикл на JavaScript напишите, а уж потом настаивайте.
0
Ris Ris 6 лет назад #
Цикл я знаю как выглядит. Я не знаю, как из шаблона (или из яваскрипта ) вызвать функцию в бэкенде.
Если никто не подскажет - придется делать фронтенд и экшенз. Там я знаю как функцию вызвать.
0
eoleg eoleg 6 лет назад #
Мнение электронщика:
1. триггер в мускуле сканирует в полях всех таблиц базы (имена нужных полей можно добавлять через запятую в опциях) все ссылки на файлы изображений и записывает результат в таблицу links
2. Сканирует файлы в папке upload и записывает результаты в таблицу upload в базе
3. триггер в мускуле сравнивает таблицу links и таблицу upload и заносит результат в таблицу compare
4. дальше переносит, пакует, удаляет или что там ещё делает.
Ну конечно при условии того что триггеры в мускуле нормально реализованы.
0
eoleg eoleg 6 лет назад #
Ну это я к тому - как снизить системные требования у этого скрипта.
0
Ris Ris 6 лет назад #
Олег, я тоже электронщик.
Все равно, где хранить результаты сканирования, в базе, в переменной, в файле. Затык происходит на стадии выборки из таблицы с большим количеством строк.
$this->model->db->getRows($co['TABLE_NAME'], "{$co['COLUMN_NAME']} REGEXP 'jpg|gif|png'));
Тут нужно, если в таблице больше, к примеру, 10000 строк - отправлять выборку в цикл с limit $x * 10000, 10000. Соответственно $x при каждой итерации меняется.
0
Старый балбес Старый балбес 6 лет назад #
Код PHP:
  1. $x = 100;
  2. cmsUser::sessionSet('limit',$x);
  3. while ($x<1000){
  4. $limit = cmsUser::sessionGet('limit', true);
  5. $x = $x + 100;
  6. echo $x;
  7. cmsUser::sessionSet('limit', $x);
  8. }
0
Ris Ris 6 лет назад #
Тут задача стоит такая:
Все поля таблиц базы, сканируются на предмет строк с наличием текста типа .jpg, .gif, .png и т.д. и подсчитывается количество строк с наличием такого текста.
Все таблицы и поля, в которых меньше 15000 строк с картинками заносятся в файл columns.json, а те, в которых больше - в файл big_columns.json.
Это уже реализовано.
Теперь нужно после сканирования таблиц, которые в columns.json, запустить цикл именно на яваскрипте (чтобы память между итерациями очищалась) и просканировать таблицы и поля, которые в big_columns.json, причем по частям с переключением лимита на выборку, чтобы память не переполнялась.
И вот ни как запустить яваскрипт из php, ни как обратиться к функции php из яваскрипта, я не очень представляю...
+1
Pro AV Pro AV 6 лет назад #
Надо добавить возможность указывать папки исключения, в которых удалять ничего не нужно.
0
Pocus Pocus 6 лет назад #
Ris, скажите, а вы продолжаете работы над компонентом?
+2
Ris Ris 6 лет назад #
Да. Есть почти готовый новый поискиватель. Сам находит поля с картинками, сканирует большие таблицы с циклом на яваскрипте и аяксе.
Но просто трындец, как долго... laugh
0
Pro AV Pro AV 6 лет назад #
Уж поскорей бы показали поискиватель, картинки сироты плачут
+1
Pro AV Pro AV 6 лет назад #
Почти всё хорошо, единственное что он не очень хорошо определяет папки из которых нужно чистить картинки, и удаляет нужные, потому что заодно чистит папки от сторонних компонентов.
Я позволил себе немного изменить файл,
.\system\controllers\unfinder\backend.php
теперь корректно определяет директории для чистки

стр.127 было :
Код PHP:
  1. if ( !strpos($name, 'default') && !strpos($name, 'installer') && !strpos($name, 'files')) {
  2. if (preg_match_all('/[a-z0-9-_]+\.('.$ex.')/', $name, $matches)){
  3. $filelist[] = $matches[0][0];
  4. }
  5. }
после изменения стало так :
Код PHP:
  1. //if ( !strpos($name, 'default') && !strpos($name, 'installer') && !strpos($name, 'files')) {
  2. if (preg_match_all('/[0-9-_]+\/()/', $name)) // маска папки с именем цифрами: /012/
  3. if (preg_match_all('/[a-z0-9-_]+\.('.$ex.')/', $name, $matches)){
  4. $filelist[] = $matches[0][0];
  5. }
  6. //}
теперь папки: default, installer, files и т.д. отдельно прописывать не нужно
0
Xamle Xamle 6 лет назад #
Где скачать можно?! по ссылки выходит "Файл не найден"
+2
Ris Ris 6 лет назад #
Четыре раза выкладывал - удаляют.
Попробуйте здесь скачать:
https://yadi.sk/d/w4TP5a5a3WZNKE
0
R161Net R161Net 1 год назад #

Всем Добра и Мира!

Здравствуйте Уважаемый Ris, подскажите где скачать вашу разработку, работает ли с версией 2.15.2?

Очень хочется...

Спасибо Вам за труды..

+2
Ris Ris 1 год назад #

Доработал утилиту следующим образом:

1. Поиск полей, в которых ищем ссылки доработан. Сначала находим поля типа text, mediumtext и т.д. В них ищутся ссылки по регулярке /цифры/uцыфры.любые символы/любые символы.(jpg|jpeg|JPG|png|bmp|gif|webp)

2. Сами файлы в папке upload ищутся только в папках с цифрами по регулярке /цифры/uцыфры.любые символы/любые символы.(jpg|jpeg|JPG|png|bmp|gif|webp).

Скачать:

instantcms.ru/redirect?url=https%3A%2F%2Fdisk.yandex.ru%2Fd%2F99rihwE8mUQQmA

Установка стандартным способом.

0
R161Net R161Net 1 год назад #

СПАСИБО ВАМ..

С Уважением..

0
R161Net R161Net 1 год назад #

Подскажите у меня выглядит все так:\

Изображение

А картинки он удаляет??

Так как 1, 2, 3 у меня пролетает мигом, Перенести файлы и Скачать, там нужен выбор..

Но при этом же как бы возможно… Ни чего..

Только файлы deleted.zip

Где можно почитать Инструкцию :-))

+1
RSN RSN 1 год назад #

Так как 1, 2, 3 у меня пролетает мигом

Прочтите описание к этой утилите (вверху страницы), что делается на этих шагах...

Обычно я нажимаю пункты 1, 2, 3 с паузами, что бы если изображений много, всё посчиталось и нагрузка на сервер была меньше (возможно делаю это зря))...

Перенести файлы и Скачать, там нужен выбор..

Переносите найденные не нужные файлы… они пакуются в отдельную папку в корне сайта deleted.zip...

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

Если пойдет что то не так можно из этой копии перезалить файлы опять в upload (структура папок сохраняется)...

После того, как проверите, что всё нормально на сайте, папку deleted.zip, можно удалить по FTP...

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

И да… рекомендую сразу после чистки, чистить кэш браузера, что бы увидеть, какие «лишние» изображения удалились с сайта… иначе у меня по началу неделю без ватермарка сайт был пока я не обнаружил, что ватермарк слетел с чисткой))...

0
R161Net R161Net 1 год назад #

🤣🤣🤣 Как раз сегодня это заметил!

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

И да… рекомендую сразу после чистки, чистить кэш браузера, что бы увидеть, какие «лишние» изображения удалились с сайта… иначе у меня по началу неделю без ватермарка сайт был пока я не обнаружил, что ватермарк слетел с чисткой))...

0
Викторыч Викторыч 9 месяцев назад #

На Openserver на тестовом сайте утилита отработала отлично: в Upload было 13,1 Gb — осталось 11,6, т.е. на полтора гига сайт стал легче! ) 

Однако, отработал практически автоматом, опции «Настройки» после установки компонента нет: 

Изображение

Ну, хотя бы после каждой операции в полосе сохранения сообщает какие-то данные: сколько таблиц, сколько найдено папок и картинок, сколько удалено. Потери — только логотип сайта, в остальном, при беглом осмотре, все на месте.

0
Викторыч Викторыч 9 месяцев назад #

На рабочем сайте отработал. Правда, сначала на первой операции в ошибку 500 выбивало, пришлось увеличить лимит памяти до 512 Gb. Минус 2 гига мусора как с куста! Еще лишних полгодика на этом тарифе посижу! )

Еще от автора

Сверхлёгкий webserver на Alpine linux
Не знаю, как нормальных людей, но меня всё время мучает вопрос, зачем для размещения небольшого сайта на виртуальном сервере я вынужден устанавливать
Накрутка рейтинга и кармы пользователям, контенту и фото.
По многочисленным просьбам изготовил новый инструмент для изменения администратором сайта рейтинга и кармы пользователей.
Авторизация по любым полям из профиля и по API
Представляю уважаемому сообществу небольшое дополнение для доработки авторизации вашего сайта, а также для интеграции двух сайтов на Instantcms друг с
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.