File name too long, или как пользователь может убить ваш бекап

  • File name too long, или как пользователь может убить ваш бекап

    Антон Долганин 7 Марта 2015 9:35 2797
    Тестирую систему бекапа Битрикс. Несколько тараканов поймалось, некоторые еще ловятся. В конце эксперимента обязательно поделюсь результатами. К сожалению, пока по-прежнему сохраняются риски потери данных при автоматическом бекапе. Так что — доверяйте, но проверяйте. В этом посте я расскажу вам о неприметном таракане, который вполне может сделать ваш бекап невалидным :(

    Что имеем:
    • Сайт в UTF (на win1251 не моделировал, но есть подозрение, что там все хорошо).
    • Длинное имя файла на кириллице, который к вам может загрузить любой пользователь, а у вас стоит настройка по сохранению имени файла.
    • Автоматический бекап средствами Битрикс.
    Итак, загружаем вот такой файлик в обычный элемент инфоблока. Это может быть не специально, а может быть и намеренно (замечу, это не любое кириллическое имя, а именно длинное):

    2015-03-07_12-43.png

    Бекап это все весело кушает и сообщает, что создается все успешно. Тут у вас случается авария, вы радостно достаете сохраненный бекап и начинаете распаковывать, и тут вас ждет тадам:

    2015-03-07_12-44_w6lz-50kb.png.png

    Причина? File name too long. Который, как правило, равен 255 символам. Но в данном случае с нами сыграла злую шутку кириллица. То ли при бекапировании она сломалась, то ли при распаковке, то ли и там и там. Но мы получили битый бекап (хорошо что в моем случае это была репетиция):

    13858501572206.png

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

     
Виктор
7 Марта 2015 15:57
Натыкался точно на такую же лажу!! Спасло нажатие кнопки пропустить, но проблема то осталась
Scrooge
7 Марта 2015 16:40
У меня еще старые файлы бэкапа после передачи в облако не очищал, задано 3ш., забивал все место на сервере,  отказался я еще и от  этого инструмента.