• У меня не совсем понятная мне проблема.

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

    Стал разбираться с импортом изображений. Там у изображений очень длинные названия 254 символа, типа — aHR0cHM6Ly9pbWdwcm94eS5vbmxpbmVyLmJ5L01YR2x4cUo3bU5UbjY3R3lEN0lJSy14dWFjdlZTX1Y3dnZiemdSRUtXVDQvdzoxNDAwL2g6MTEwMC9mOmpwZy9hSFIwY0hNNkx5OWpiMjUwL1pXNTBMbTl1YkdsdVpYSXUvWW5rdlkyRjBZV3h2Wnk5ay9aWFpwWTJVdmJHRnlaMlV2L09XVTJaakZqTVRCbE9ESTIvTWpJNVlUazBZbU.jpg и сократить название не представляется возможным. Я попробовал загружать просто эти файлы в медиафайлы и у меня получалось два вида ошибок

    aHR0cHM6Ly9pbWdwcm94eS5vbmxpbmVyLmJ5L01YR2x4cUo3bU5UbjY3R3lEN0lJSy14dWFjdlZTX1Y3dnZiemdSRUtXVDQvdzoxNDAwL2g6MTEwMC9mOmpwZy9hSFIwY0hNNkx5OWpiMjUwL1pXNTBMbTl1YkdsdVpYSXUvWW5rdlkyRjBZV3h2Wnk5ay9aWFpwWTJVdmJHRnlaMlV2L09XVTJaakZqTVRCbE9ESTIvTWpJNVlUazBZbU.jpg Загруженный файл не удалось переместить в wp-content/uploads/2024/06.

    или

    aHR0cHM6Ly9pbWdwcm94eS5vbmxpbmVyLmJ5L01YR2x4cUo3bU5UbjY3R3lEN0lJSy14dWFjdlZTX1Y3dnZiemdSRUtXVDQvdzoxNDAwL2g6MTEwMC9mOmpwZy9hSFIwY0hNNkx5OWpiMjUwL1pXNTBMbTl1YkdsdVpYSXUvWW5rdlkyRjBZV3h2Wnk5ay9aWFpwWTJVdmJHRnlaMlV2L09XVTJaakZqTVRCbE9ESTIvTWpJNVlUazBZbU.jpg Не удалось создать запись в базе данных.

    Я залез в PhpMyAdmin и увеличил количество символов в графах post_name и guid таблицы dprc_posts и meta_key таблицы dprc_postmeta.

    В настоящий момент проблема стала еще не понятней из 9 файлов три загрузились, а остальные не грузятся и уже только с ошибкой:
    aHR0cHM6Ly9pbWdwcm94eS5vbmxpbmVyLmJ5L01YR2x4cUo3bU5UbjY3R3lEN0lJSy14dWFjdlZTX1Y3dnZiemdSRUtXVDQvdzoxNDAwL2g6MTEwMC9mOmpwZy9hSFIwY0hNNkx5OWpiMjUwL1pXNTBMbTl1YkdsdVpYSXUvWW5rdlkyRjBZV3h2Wnk5ay9aWFpwWTJVdmJHRnlaMlV2L09XVTJaakZqTVRCbE9ESTIvTWpJNVlUazBZbU.jpg Загруженный файл не удалось переместить в wp-content/uploads/2024/06.

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

    Я попробовал который который не загрузился с названием

    aHR0cHM6Ly9pbWdwcm94eS5vbmxpbmVyLmJ5L3JkeXhfaWpHUUk3Z0xCbkZQWTh0cGNUU1ZvYjFCbEgweTNGZ1ZHRXl0SHcvdzoxNDAwL2g6MTEwMC9mOmpwZy9hSFIwY0hNNkx5OWpiMjUwL1pXNTBMbTl1YkdsdVpYSXUvWW5rdlkyRjBZV3h2Wnk5ay9aWFpwWTJVdmJHRnlaMlV2L00yUXhOVE01WlRkaU5UVTUvTWpFMk5qUmhZVG.jpg

    убрал последнюю букву перед расширением файла

    aHR0cHM6Ly9pbWdwcm94eS5vbmxpbmVyLmJ5L3JkeXhfaWpHUUk3Z0xCbkZQWTh0cGNUU1ZvYjFCbEgweTNGZ1ZHRXl0SHcvdzoxNDAwL2g6MTEwMC9mOmpwZy9hSFIwY0hNNkx5OWpiMjUwL1pXNTBMbTl1YkdsdVpYSXUvWW5rdlkyRjBZV3h2Wnk5ay9aWFpwWTJVdmJHRnlaMlV2L00yUXhOVE01WlRkaU5UVTUvTWpFMk5qUmhZV.jpg

    и файл загрузился, просто поменял последнюю букву перед расширением файла на другую

    aHR0cHM6Ly9pbWdwcm94eS5vbmxpbmVyLmJ5L3JkeXhfaWpHUUk3Z0xCbkZQWTh0cGNUU1ZvYjFCbEgweTNGZ1ZHRXl0SHcvdzoxNDAwL2g6MTEwMC9mOmpwZy9hSFIwY0hNNkx5OWpiMjUwL1pXNTBMbTl1YkdsdVpYSXUvWW5rdlkyRjBZV3h2Wnk5ay9aWFpwWTJVdmJHRnlaMlV2L00yUXhOVE01WlRkaU5UVTUvTWpFMk5qUmhZVF.jpg

    и файл загрузился, поменял обратно F в конце названия файла на G и файл перестал грузится. Со стороны хостера ограничений нет, все плагины отключал.

    Может кто нибудь сталкивался с чем то похожим или знает где копать?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Yui

    (@fierevere)

    永子

    ext4
    Structures
    Max filename length 255 bytes (fewer for multibyte character encodings such as Unicode)

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

    ps: впрочем и переход на другую фс вас тоже не спасет, если только что-то редкое. Большинство распространенных ФС поддерживают длину имён до 255 байт

    работайте в направлении оптимизации имён файлов, используйте хеши или uuid, там длины хватит каждый атом в видимой части вселенной назвать

    pps: vfs в Linux в принципе не поддерживает длину выше 255 байт

    /usr/include/linux/limits.h

    #define NAME_MAX 255

    ну и все…можете тыкнуть ваших программистов в стандарты, пусть пишут нормальный код для именования файлов

    и это даже совсем не про ВордПресс

    • Ответ изменён 5 месяцев, 3 недели назад пользователем Yui.
    • Ответ изменён 5 месяцев, 3 недели назад пользователем Yui.

    Yui Ну так 254 символа 254 байта наименование файлов, за эти границы они не вылазят. Я вообще не понимаю поведение когда меняешь символ и бац оно грузится и уже можно загрузить какая разница в байтах между G и F буквами?

    Модератор Yui

    (@fierevere)

    永子

    255 байт может вмещать меньше символов в зависимости от кодировки, в любом случае вам нужно оптимизировать код, а не играть с переименованием на грани лимитов ФС и разумности вообще

    ПС, вспомнился рассказ Артура Кларка

    Девять миллиардов имён Бога

    • Ответ изменён 5 месяцев, 3 недели назад пользователем Yui.

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

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

    Я конечно проблему решил, написал обработку которая скачивает файлы по ссылкам в CSV файле, переименовывает их, сохраняет в папочку на компьютер и переписывет ссылку в CSV файле. Но это сделать для 40 — 50 тысяч изображений как то очень медленно получается. В целом мне казалось что изменение ограничения на хостинге это более простое решение но не менять же из за этого хостинг.

    Всем, кто ворует контент, таких проблем — побольше…

Просмотр 6 ответов — с 1 по 6 (всего 6)