Я храню в в таких случаях в виде sha1(содержимое) + оригинальное расширение. Если файлов много, то хранить их не скопом в одной папке, а раскидать по папкам, имена которых состоят из первых 2 символов хэша (если больше папок надо, то можно несколько уровней вложенности - по символам 1-2, внутри ещё папки по символам 3-4 и т.д.)
Вместо sha1 можно любой другой алгоритм, например, sha256.