Переименование файлов

правила переименования файлов при загрузке

При загрузке файлов в Buga архивариус все файлы будут переименованы. Старое название сохраняется в поле a_name_original. Новое имя файла создается на основе его даты оригинала или даты загрузки. Для начала все файлы сканируются утилитой exiftool, здесь мы пытаемся получить дату оригинала date_original - это именно дата создания изображения или видео. Чтобы получить дату оригинала сканируются внутренние теги файлов.  Если дату оригинала не удалось получить то вместо нее будет использована дата загрузки файла.

Итак берем дату в формате MySQL 2020-04-23 05:23:09 преобразуем ее в имя 2020-04-23_05-23-09 ,  добавляем расширение .jpg исходного файла получаем полное имя файла 2020-04-23_05-23-09.jpg

Коллизии - перед добавлением файла проверяем - нет ли уже у нас файла с таким именем, если есть, то к исходному имени добавляем суффикс (миллисекунды) -001, для следующего файла суфикс -002 и так далее получаем примерно такое 2020-04-23_05-23-09-001.jpg

Расширение файла как и его mimetype получаем в первую очередь через утилиту exiftool то есть исходя из внутренней структуры самого файла, не обращая внимание на расширение с которым прислали файл. Если эти два метода не сработали тогда уже берем оригинальное расширение. Проще говоря если взяли картинку jpg поменяли расширение на zip - сканер все равно распознает, что это картинка jpeg и поставит правильное расширение .jpg. Все расширение приводятся в нижний регистр.