2010-02-28 4 views
0

Я создаю сайт, который позволяет пользователям загружать фотографии. Это сервер Linux.Загрузка фотографий на сервер linux через php - какое максимальное количество файлов может иметь папка?

Мне было интересно, что было бы лучшей структурой каталогов, чтобы сохранить эти изображения? И есть ли ограничение на количество файлов, которые может иметь папка?

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

+0

Вы не хотите пытаться преодолевать пределы, поиск файлов будет очень медленным задолго до этого. Я предлагаю положить их в дерево папок. Взгляните на этот вопрос, это почти дубликат: http://stackoverflow.com/questions/446358/storing-a-large-number-of-images, и это тоже актуально: http://stackoverflow.com/вопросы/466521/как-много-файлов-в-каталоге-это слишком много –

ответ

2

Возможно, нет ограничений на файлы, но в зависимости от файловой системы вы хотите ограничить количество файлов в каталоге до 1000 и 10000. Если у вас есть файловая система, которая не индексирует каталоги, даже 1000 файлов будут делать операции с файлами медленными.

Если ваша файловая система индексирует каталоги, вы можете легко иметь 100 000 файлов в одном, но не хотите. Выполнение ls -l в каталоге с четными файлами 1k будет медленным; вы бы, вероятно, отказались, прежде чем он даже начал выводить в каталог с файлами 100k.

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

0

Единственное ограничение на количество файлов, которые может хранить каталог в linux в количестве свободных инодов. Вы можете определить эту цифру, выполнив:

df -i 

На рисунке представлены как IFree это верхняя граница числа файлов, которые можно держать в директории, но учтите, что эта цифра для всей файловой системы. Поэтому, если вы помещаете максимальное количество файлов в один каталог, вы не сможете создавать больше файлов в другом месте в файловой системе.

Каталог для каждого пользователя будет путем

4

@OP, существует несколько способов, что каталог может иметь так называемые «границы». Один из них - если задана дисковая квота. Другое зависит от файловой системы. Например, в статье this, он говорит ext3 имеет

There is a limit of 31998 sub-directories per one directory, stemming from its limit of 32000 links per inode.

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

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