Я бы предложил использовать другую стратегию: использование mysql auto_increment для получения идентификатора, сохранение актива в базе данных, получение идентификатора и добавление его к имени файла.Все остальные способы имеют недостатки, в которых необходимо выполнять частичные откаты, обрабатывать повторяющиеся имена файлов и т. Д.
Я бы также предложил не использовать исходное имя файла для хранения объекта: вы сталкиваетесь с проблемами с запрещенными символами на разных операциях.системы, а также кодировка символов, возможно, по какой-либо причине дублируются (например, потому что база данных чувствительна к регистру, а файловая система - нет).Могут быть и другие недостатки, такие как максимальная длина имени файла, или такие, о которых вы можете не знать прямо сейчас.
Мое решение заключается в простом использовании автоматического увеличения mysql в качестве имени файла.Если вы думаете об этом, это имеет смысл.Автоинкремент используется как уникальный идентификатор.Если вы убедитесь, что объекты истории только из одной таблицы в одну папку, у вас нет проблем с определением различных ресурсов, имен файлов и т. Д.
Если вы настаиваете на том, чтобы сохранить свой путь, вы можете сделать имя файла уникальным в базе данных.и затем перезапустите в случае сбоя, как вы предложили.