Задать вопрос
@c3412084

Как правильно организовать файловую структуру для проекта?

Добрый день.

У меня есть портал, на который загружено уже более 10ккк изображений.
В организации их хранения я использую следующий подход к формированию путей.

/b/C/c283308/bC_w250h300.jpg, где
  • /b/C/ - ID изображения, представленный в виде строки (в данном случае ID = 100),
  • c283308 - Случайное число от 100 000 до 999 999,
  • bC_w250h300.jpg - Имя самого изображения.


Но уже для изображения с ID = 10 000 000 000 (его текстовый вид будет kUKYOA) путь будет вида
/k/U/K/Y/O/A/c616822/kUKYOA_w250h300.jpg

Я не думаю, что это хороший вариант хранения данных. Может, есть какой-либо более эффективный?
К тому же, чтобы сгенерировать ссылку к такому изображению по Prefix'у (kUKYOA) и Ключу (616822), требуется делать цикл по количеству символов у prefix'а, чтобы разбить каждый символ через "/". В данном примере это 6 вызовов substr. Но на странице может быть до 30ти изображений, т.е., приблизительно 180 substr'ов. Я раньше не задумывался об этом, да и проблемы были другие. Как говорится, проблемы решаем по мере их поступления.

Есть мысль делать разбивку префикса nginx'ом, а пользователю отдавать такую ссылку: /kUKYOA/c616822/kUKYOA_w250h300.jpg, а nginx сам ее разобьет в нужном формате. Но, имхо, это бред.
В общем, посоветуйте, пожалуйста.
  • Вопрос задан
  • 2482 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vsadm
Бессистемный архитектор
Посмотрите на специализированные хранилища данных, например, Elliptics.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы