Я работаю над приложением, которое будет хранить изображения в файловой системе. Например, если пользователь загрузит изображение с именем «green.jpg
», оно будет сохранено как / wwwroot / images / f / c / 3 / fc3b16ee-9254-11e9-bc42-526af7764f64.jpg
В базе данных у меня будет таблица, которая содержит имя изображения и его оригинальное имя:
UUID Name
fc3b16ee-9254-11e9-bc42-526af7764f64 green.jpg
Я хочу, чтобы сгенерированный html выглядел следующим образом:
<img src="/whatever/green.jpg">
Так что вопрос в том, как обслуживать / wwwroot / images / f / c / 3 / fc3b16ee-9254-11e9-bc42-526af7764f64.jpg когда браузер запрашивает " green.jpg""
Создание / wwwroot / what / green.jpg не очень хорошая идея из-за возможных конфликтов имен и дополнительного диска io.
Я хочу, чтобы имена файлов в сгенерированном HTML были удобочитаемыми, но сохраняли их таким образом, чтобы я мог избежать конфликтов имен файлов и чтобы в каталоге не было слишком много файлов.
Создание нового каталога для каждой буквы UUID решило бы обе проблемы, но я не знаю, хорошая ли это идея.
Использование UUID не важно, просто уникальность пути к файлу. Даже если я использую целое число в качестве уникального идентификатора, если будут миллионы изображений, миллионы каталогов могут быть слишком большими.
Если это имеет значение, я использую PostgreSQL в качестве движка БД и буду запускать приложение в Linux. Я не знаю, какую файловую систему я буду использовать, вероятно, ext4.