Django - уникальные имена файлов загрузки независимо от расширения файла - PullRequest
1 голос
/ 05 мая 2019

Я хочу создать уникальные имена файлов для каждого загруженного файла (аналогично this ), но независимо от расширения (т. Е. Name.txt и name.dxf - это конфликт)

Я конвертирую файлы на моем сервере (например, ogg, wav и т. Д.) В конкретное расширение типа файла, т.е.mp3, а затем удаление исходного файла.

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

Очевидно, я могу проверить, существует ли целевой файл уже,Я знаю, что Django также сгенерирует некоторый уникальный идентификатор (добавленный к загруженному имени файла), такой как "_HVk3AIt", если есть конфликт с точным соответствием имени файла.Это UUID?

Я изначально, хотя добавление случайно сгенерированного UUID было бы плохим решением, потому что даже если 2 ^ 128 - это 4 * 10 ^ 38 (мало шансов столкновения), вы могли бы технически переопределить что-то в конце концов, но я думаю, вы простопродолжайте проверять новое предложенное имя файла и добавляйте дополнительный UUID, если у вас есть второе столкновение и т. д.

Это хорошее решение или стандартная практика для такой проблемы?

...