Для простоты я бы попробовал разбить URL на его (логические) составные части, чтобы вы получили красивую аккуратную структуру каталогов, которая сопоставляется с URL:
/
/http
/https
/http/com
/http/com/google
/http/com/stackoverflow
/http/com/stackoverflow/questions
/http/com/stackoverflow/questions/2173839
Это, вероятно, имеет смысл, если вы обрабатываете множество различных доменов и веб-сайтов, но я не видел ваши примеры данных, поэтому не могу сказать.
Если вы можете столкнуться с коллизиями с этим (или любым) стилем отображения URL, попробуйте трактовать файловую систему как хеш-структуру . Вы можете рассматривать корневой каталог как хеш (где угодно от 32k до 255 ^ 255 сегментов, в зависимости от системы) и помещать файлы прямо туда. То, как вы справитесь с коллизиями, будет зависеть от объема данных и вероятности их возникновения.