2013-03-20 2 views
4

Сначала я хотел спросить: «Какая максимальная разрешенная подпапка для ОС Windows»Какова максимальная допустимая глубина подпапок?

Но потом я подумал, может быть, мой хостинг-провайдер не на окнах, а на Linux или что-то еще. Поэтому я спрашиваю, какая возможная максимально разрешенная подпапка для всех основных ОС, которую обычно использует поставщик веб-хостинга. (Можно ли сказать Linux, Mac или Windows?)

В таком случае, основываясь на ваших впечатлениях, делают ли сайты веб-хостинга ограничение количества подпапок, которые мы можем сделать?

(Почему это? Потому что я хочу, чтобы каждый пользователь должен иметь свою собственную папку для легкого доступа к их изображениям. Будет ли это нормально? Или это плохая практика? Тем не менее в программировании.)

+1

Я считаю, что там нет _sane_ жесткого верхнего предела. Ожидайте значения порядка 2^32. Даже 2^16 более здравомыслящий.Раньше у вас будут другие проблемы. –

+0

@JanDvorak вы можете использовать PLS. объяснить? –

+2

Я имею в виду, что задолго до того, как вы столкнетесь с «максимальным количеством подпапок в каждой папке, доступной», список каталогов будет безумно длинным (верьте мне, перечисление папки с сотнями подпапок занимает безумно длиннее SSH), или вы будете заканчивается дисковое пространство. –

ответ

3

Предел а не на глубине вложенных подкаталогов (вы могли бы иметь десятки из них, даже больше), а в файловых системах и квотах.

Также наличие очень длинных путей к файлам неудобно (и может быть немного неэффективным). Программно, возможен путь к файлу длиной в несколько сотен или даже тысяч символов; но человеческий мозг не способен запомнить такие длинные пути к файлам.

Большинство файловых систем (в Linux) имеют фиксированное ограничение на их количество inodes.

Некоторые файловые системы плохо себя ведут с каталогами, содержащими десять тысяч записей (например, поскольку поиск является линейным, а не дихотомическим). И вам трудно справляться с ними (например, даже ls * дает слишком длинный вывод). Следовательно, он может быть мудрым, чтобы иметь /somepath/a/0001 ... /somepath/z/9999 вместо /somepath/a0001 ... /somepath/z9999

Если у вас есть много тысяч пользователей, каждый со своей директории, вы можете, например, группировать пользователей по их инициалам, например. есть /some/path/A/userAaron/images/foobar и /some/path/B/userBasile/images/barfoo и т.д. Так что /some/path/A/ бы только сотни подкаталогов, и т.д ...

Удобным правило может быть: избегают иметь больше, чем несколько сотен записей -either подкаталоги или files- в каждом каталоге.

Некоторые веб-приложения хранят небольшой блок данных в отдельных строках баз данных SQL и используют файлы (чье имя может быть сгенерировано) для больших блоков данных, сохраняя путь к файлу в базе данных. Имея миллионы файлов с несколькими десятками байтов в большинстве, вероятно, неэффективно.

Некоторые системные администраторы также используют quotas в файловых системах.

+0

Спасибо @basilestarynkevitch! Ваш ответ объяснил многое! И спасибо за подсказку для группировки. Я попытаюсь создать систему с этой процедурой. –

3

В Windows существует ограничение на 260 символов на любом пути. Сюда входят имена файлов, поэтому файл не может содержать больше символов, чем 260-directory path length.

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

+2

Большинство веб-хостинга не основаны на Windows ... В Linux лимит намного больше (не менее 1024 и, вероятно, намного больше). –

+0

+1 вам и для информации! –

+0

@Basile: Это правда. Тем не менее, вопрос был «все основные ОС». В то время как Linux, вероятно, гораздо более распространен, я знаю десятки хостинговых компаний, которые предоставляют Windows – carlpett

-1

Что-то еще, что очень важно, - это производительность. С Windows, если вы начнете получать более 5k файлов, он начинает медленно, 10k он сканирует, а 50k становится полностью непригодным!

Смежные вопросы