удаление оригиналов изображений

в папке wa-data/protected/shop/products лежать оригиналы изображений. Как правильно их удалить, чтобы на них в базе ссылки тоже были удалены?


Как удалить кучу фалов с диска я знаю, а вот как удалить ссылки из базы на них - не знаю.

12 ответов

  • 2
    replicant 14 сентября 2018 16:41 #

    Оригинальные названия файлов хранятся в БД в таблице shop_product_images в поле original_filename. Однако строки из этой таблицы используются для построения массивов изображений, стикеров для товаров, пояснений к фото, поэтому трогать строки настоятельно не рекомендую.

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

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

    У меня вообще опция "разрешить хранение оригиналов" в настройках не влияет на саму загрузку оригиналов на диск. Они загружаются всегда и хранятся всегда. Разница только в том, что они правке не подвергаются (скажем при поворотах), когда разрешено хранение, а место по-любому занимают да и ещё при правках создается сам номер.original.jpg.

    • 0
      Demon13 Demon13 15 сентября 2018 08:35 #

      У меня опция "хранение оригиналов" то о ключена и тоже они все равно хранятся.

      Пересоздават эскизы я не буду - только при правке товара. Посему мне оригиналы нафик ненужные в 2х магазинах из 3х. Если и грузить новые искизы, я всегда их из инета с сайта производителя "зацепить" могу.

      А ещё есть пустые папки, которые занимает неммосто а "ресурсы". Как их грохнуться безболезненно? Я конечно могу скрипт написать и грохнуться через Шелл, но мне кажется это не безопасно ТК обращение к ним если будет, ведь в БД информация о них сохранена, то это вызовет ошибки, не смертельные, но ошибки

  • 0
    Rat Партнер-разработчик 15 сентября 2018 07:23 #

    Как правильно их удалить

    Зачем?

    • 0
      Demon13 Demon13 15 сентября 2018 08:30 #

      Места на диске дофига, а вот предельное количество файлов, так называемые хедеры, подходит к 90%, что есть опасно. ТК может кончиться в любой момент.

      Да и не нужны мне оригиналы от слова совсем. Зачем хранить дублирующую́ю информацию???? Зачем в базе хранить то что не используется? Ведь весь этот дубляж дурно сказывается на производительности! У меня в магазине по 15-20 тысяч товара с полным описанием и не одной картинкой, это только картинок 20гигов оптимизированных, если их стане на 10-15% меньше это прибавит 4-10% производительности примерно.

      • +1

        В 99% любые статистические данные фальсифицированы или взяты из головы. В 80% случаев их применяют для маркетинга, чтобы передаваемое сообщение было на 100500% убедительнее.

        Если вам жить скучно, то просто удалите wa-data/protected/shop/products, базу чистить не надо, так как в базе хранится ID, а по нему подбираются и оригиналы и миниатюры. Так что, ваш выигрыш будет только в освободившемся месте на диске, а насчет потерь можно будет поговорить позже.

        • +1
          Shop-Script Fan Shop-Script Fan 23 сентября 2021 19:16 #

          Попробовал удалить папку /wa-data/protected/shop/products/ место конечно освободилось и иноды, но вместе с оригиналами улетели и картинки в магазине. Главное фото и мини-превью, это то что я заметил сразу. Хотя я ожидал что удаление папки products по указанному выше адресу не затронет витрину. Мне надо было сразу понять, что совет этот по сути дурацкий так как физическое удаление чего либо с хостинга это во врачебной практике пытаться выполнять операцию не скальпелем а топором. Я сбрасывал кеш что я не делал но главное фото в карточке пропало, причем выборочно, где-то есть где-то нет. Пришлось вернуть бэкап. Есть какой-то цивилизованный способ убрать оригиналы кроме тупого стирания папки photos?

          • +1
            Алексей Алексей Webasyst 23 сентября 2021 20:22 #

            Есть пару плагинов, которые могут вам помочь
            https://www.webasyst.ru/store/...
            https://www.webasyst.ru/store/...

            • +1
              Shop-Script Fan Shop-Script Fan 24 сентября 2021 00:14 #

              Спасибо, первый плагин то, что надо.

               А то я наслушался советов более "опытных экспертов", а потом сам додумался и через FTP и поиск выбрал все картинки где в названии было .original и прибил только их. И место освободилось и фото в магазине не пропали. Но это все равно неправильно так делать, а плагин все делает тоже самое но как надо, просто вместо оригиналов теперь подлинкованы уже обрезанные и сжатые картинки.

          • +1
            replicant replicant 23 сентября 2021 22:51 #

            Для начала генерация ВСЕХ необходимых размеров эскизов должна происходить в момент загрузки изображений, а не налету. Если ваш проект работает в режиме автосоздания эскизов нужных размеров по требованию, в том числе и х2, а при загрузке не все предопределенные эскизы создаются сразу, то для начала надо решить все эти вещи на 100%, а иначе будут проблемы в стиле "где-то есть картинка, а где-то нет".

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

            Без нормального менеджмента изображений товаров и без четкого понимания всего процесса лучше не заниматься такими вещами.

            Простая проверка: Если сходу не назовете сколько эскизов генерируется на один оригинал и каких они размеров, то вы не знаете на 100%, что у вас там происходит и как это все работает, поэтому начинать удалять вам пока ещё рано.

      • 0
        replicant replicant 15 сентября 2018 14:32 #

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

        • +1
          Shop-Script Fan Shop-Script Fan 22 сентября 2021 19:50 #

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

          Я читаю описание к этим чекбоксам но не могу понять что произойдет, не могу поверить что оригиналы надо вручную удалять по FTP :) Есть же какой-то способ все оригиналы что есть на этот момент почистить?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите