У некоторых товаров пропадают эскизы фотографий

Добрый день

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

Но товаров в магазине более 17 000, все не пересмотришь... посмотрел в error_log Apache там много сообщений об ошибке "файл не найден" для фото товаров, есть имя файла, но по их названию не знаю как вычислить что это за товар чтобы пересоздать фото...

Например:

2017/08/01 00:50:46 [error] 2656#0: *10543409 open() "/home/salfetki/domains/salfetki.kiev.ua/public_html/wa-data/public/shop/products/10/57/5710/images/5295/5295.220.JPG" failed (2: No such file or directory), client: 66.249.76.52, server: salfetki.kiev.ua, request: "GET /wa-data/public/shop/products/10/57/5710/images/5295/5295.220.JPG HTTP/1.1", host: "salfetki.kiev.ua"

2017/08/01 00:52:03 [error] 2659#0: *10543634 open() "/home/salfetki/domains/salfetki.kiev.ua/public_html/wa-data/public/shop/products/40/27/12740/images/13869/13869.220.jpg" failed (2: No such file or directory), client: 95.108.213.4, server: salfetki.kiev.ua, request: "GET /wa-data/public/shop/products/40/27/12740/images/13869/13869.220.jpg HTTP/1.1", host: "salfetki.kiev.ua"

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

Эти ошибки (ошибка с фото товаров с окончанием в названии @2x.gif, x0.jpg), я так понимаю, должны быть единоразовые, т.е. создаются недостающие эскизы и в следующий раз уже все должно отдаваться клиентскому браузеру:

2017/08/01 00:55:39 [error] 2659#0: *10545718 open() "/home/salfetki/domains/salfetki.kiev.ua/public_html/wa-data/public/shop/products/53/58/15853/images/17829/17829.48@2x.gif" failed (2: No such file or directory), client: 46.30.160.3, server: salfetki.kiev.ua, request: "HEAD /wa-data/public/shop/products/53/58/15853/images/17829/17829.48@2x.gif HTTP/1.1", host: "salfetki.kiev.ua", referrer: "http://salfetki.kiev.ua/category/chasovye-mehanizmy-i-strelki-dlja-chasov/?page=2"

2017/08/01 00:59:34 [error] 2659#0: *10546592 open() "/home/salfetki/domains/salfetki.kiev.ua/public_html/wa-data/public/shop/products/48/78/7848/images/7623/7623.115x0.jpg" failed (2: No such file or directory), client: 95.108.213.4, server: salfetki.kiev.ua, request: "GET /wa-data/public/shop/products/48/78/7848/images/7623/7623.115x0.jpg HTTP/1.1", host: "salfetki.kiev.ua"

Я прав? Просто как то их слишком много набегает за день (по 300 кб error_log к вечеру)...

6 ответов

  • 2

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

    И второй момент, выяснить почему не создаются "на лету". Это вероятно уже надо смотреть настройки хостинга. Тут без взгляда "под капот" ничего не посоветуешь.

    • +1
      Антон Антон 1 августа 2017 10:17 #

      А не подскажите из собственного опыта сколько по времени может занять процедура пересоздания эскизов, если товаров порядка 17000? За ночь успеет? И не заблокирует ли хостинг за черезмерную нагрузку?

      Посмотрел: в разных папках продуктов - разное количество эскизов. Наверно связано с тем? что недавно поменял тему дизайна магазина и она досоздает новые эскизы.

      Сейчас наблюдаю в наибольшем виде следующие эскизы для одного товара:

      17829.115x0.gif

      17829.115x0@2x.gif

      17829.200.gif

      17829.200@2x.gif

      17829.200x0.gif

      17829.220.gif

      17829.220@2x.gif

      17829.48.gif

      17829.48@2x.gif

      17829.48x48.gif

      17829.48x48@2x.gif

      17829.750.gif

      17829.750x0.gif

      17829.750x0@2x.gif

      17829.96x96.gif

      17829.96x96@2x.gif

      17829.970.gif

      17829.970@2x.gif


      • +2

        На VPS это займет около часа. Про хостинги говорить не буду, так как есть такие....

        • +1

          Ну прям уж и около часа.... 17к товаров * на пусть даже 10 эскизов = 170к файлов создать и записать на диск. А в часе пока 3600 секунд. Так что, Антон, можете сами приблизительно прикинуть.

          Но прежде чем пересоздавать эскизы, имхо, следует поковыряться в проблеме... Для начала, надо вычислить товар на который ругается в логах. Это можно сделать исходя из пути эскиза. Я точно не понмню, но в пути фигурирует ID товара. Где-то на форуме была тема, где расписана логика формирования пути к изображению, но найти не смог. Допускаю, id товара - это число в пути предшествующее слову images. Т.е. вот это изображение /wa-data/public/shop/products/48/78/7848/images/7623/7623.115x0.jpg принадлежит товару с ID 7848. Далее найти этот товар и внимательно посмотреть на него как в бекенде, так и во фронтенде. Затем установить бесплатное приложение Логи, включить в его настройках логгирование ошибок PHP, попробовать открыть товар на витрине, и посмотреть, появились ли какие-то записи в файле php.log соответствующие по времени открытию товара на витрине. Ну а дальше по ситуации...

          • +1
            Антон Антон 1 августа 2017 12:07 #

            Ок, спасибо! Буду разбираться а потом запущу пересоздание эскизов. О результатах отпишусь.

            • +1

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

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

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