удаление оригиналов изображений
в папке wa-data/protected/shop/products лежать оригиналы изображений. Как правильно их удалить, чтобы на них в базе ссылки тоже были удалены?
Как удалить кучу фалов с диска я знаю, а вот как удалить ссылки из базы на них - не знаю.
12 ответов
Оригинальные названия файлов хранятся в БД в таблице shop_product_images в поле original_filename. Однако строки из этой таблицы используются для построения массивов изображений, стикеров для товаров, пояснений к фото, поэтому трогать строки настоятельно не рекомендую.
Достаточно удалить или перенести в другое хранилище файлы оригиналов с диска, если хотите выиграть место.
При пересоздании эскизов у товаров без оригиналов возникнут некоторые "нюансы" с последующим удалением несуществующих фото, но на месте с этим разберетесь. Там есть пара способов. Один через базу, а второй похож на лайфхак. :)
У меня вообще опция "разрешить хранение оригиналов" в настройках не влияет на саму загрузку оригиналов на диск. Они загружаются всегда и хранятся всегда. Разница только в том, что они правке не подвергаются (скажем при поворотах), когда разрешено хранение, а место по-любому занимают да и ещё при правках создается сам номер.original.jpg.
У меня опция "хранение оригиналов" то о ключена и тоже они все равно хранятся.
Пересоздават эскизы я не буду - только при правке товара. Посему мне оригиналы нафик ненужные в 2х магазинах из 3х. Если и грузить новые искизы, я всегда их из инета с сайта производителя "зацепить" могу.
А ещё есть пустые папки, которые занимает неммосто а "ресурсы". Как их грохнуться безболезненно? Я конечно могу скрипт написать и грохнуться через Шелл, но мне кажется это не безопасно ТК обращение к ним если будет, ведь в БД информация о них сохранена, то это вызовет ошибки, не смертельные, но ошибки
Удалить пустые каталоги внутри wa-data можно следуя инструкции тут https://support.webasyst.ru/sh... пункт emptyPath (в самом конце мануала).
Зачем?
Места на диске дофига, а вот предельное количество файлов, так называемые хедеры, подходит к 90%, что есть опасно. ТК может кончиться в любой момент.
Да и не нужны мне оригиналы от слова совсем. Зачем хранить дублирующую́ю информацию???? Зачем в базе хранить то что не используется? Ведь весь этот дубляж дурно сказывается на производительности! У меня в магазине по 15-20 тысяч товара с полным описанием и не одной картинкой, это только картинок 20гигов оптимизированных, если их стане на 10-15% меньше это прибавит 4-10% производительности примерно.
В 99% любые статистические данные фальсифицированы или взяты из головы. В 80% случаев их применяют для маркетинга, чтобы передаваемое сообщение было на 100500% убедительнее.
Если вам жить скучно, то просто удалите wa-data/protected/shop/products, базу чистить не надо, так как в базе хранится ID, а по нему подбираются и оригиналы и миниатюры. Так что, ваш выигрыш будет только в освободившемся месте на диске, а насчет потерь можно будет поговорить позже.
Попробовал удалить папку /wa-data/protected/shop/products/ место конечно освободилось и иноды, но вместе с оригиналами улетели и картинки в магазине. Главное фото и мини-превью, это то что я заметил сразу. Хотя я ожидал что удаление папки products по указанному выше адресу не затронет витрину. Мне надо было сразу понять, что совет этот по сути дурацкий так как физическое удаление чего либо с хостинга это во врачебной практике пытаться выполнять операцию не скальпелем а топором. Я сбрасывал кеш что я не делал но главное фото в карточке пропало, причем выборочно, где-то есть где-то нет. Пришлось вернуть бэкап. Есть какой-то цивилизованный способ убрать оригиналы кроме тупого стирания папки photos?
Есть пару плагинов, которые могут вам помочь
https://www.webasyst.ru/store/...
https://www.webasyst.ru/store/...
Спасибо, первый плагин то, что надо.
А то я наслушался советов более "опытных экспертов", а потом сам додумался и через FTP и поиск выбрал все картинки где в названии было .original и прибил только их. И место освободилось и фото в магазине не пропали. Но это все равно неправильно так делать, а плагин все делает тоже самое но как надо, просто вместо оригиналов теперь подлинкованы уже обрезанные и сжатые картинки.
Для начала генерация ВСЕХ необходимых размеров эскизов должна происходить в момент загрузки изображений, а не налету. Если ваш проект работает в режиме автосоздания эскизов нужных размеров по требованию, в том числе и х2, а при загрузке не все предопределенные эскизы создаются сразу, то для начала надо решить все эти вещи на 100%, а иначе будут проблемы в стиле "где-то есть картинка, а где-то нет".
Если же всё так как надо, то удаление оригиналов для вас было бы не сложнее и не опаснее, чем просто чихнуть.
Без нормального менеджмента изображений товаров и без четкого понимания всего процесса лучше не заниматься такими вещами.
Простая проверка: Если сходу не назовете сколько эскизов генерируется на один оригинал и каких они размеров, то вы не знаете на 100%, что у вас там происходит и как это все работает, поэтому начинать удалять вам пока ещё рано.
Производительности это не добавит. Вообще. Совсем. От удаления оригиналов вы получите выигрыш только в месте на диске и в кол-ве доступных инодов фс, если у вас по ним есть лимит.
У меня как раз ограничено количество инодов на хостинге и я хочу убрать оригиналы, как мне поступить. Первое что я сделал это отключил в настройках сохранение этих оригиналов. Но это как я понимаю касается только новых товаров. А можно это сделать через вот эту настройку Удалить и заново создать эскизы изображений всех товаров ?
Я читаю описание к этим чекбоксам но не могу понять что произойдет, не могу поверить что оригиналы надо вручную удалять по FTP :) Есть же какой-то способ все оригиналы что есть на этот момент почистить?