Оптимальная запись файлов - как организовать?

Sirius

PHP+MySQL=LOVE
Оптимальная запись файлов - как организовать?

Есть скрипт, где юзеры закачивают свои фотки на сервер!
Мне интересно, как нужно оптимально разместить их на сервере?
К примеру, всё класть в одну директорию, для каждого юзера отдельная директория, директория по месяцам года и т.д.
Приблизительно количество юзеров, около 100.000
 

confguru

ExAdmin
Команда форума
Без серьезного планирования нагрузки здесь не обойтись. При таком кол-ве узеров одного сервера не хватит %))
 

KOTEHOK

Guest
при таких аппетитах на количество пользователей, надо пологать, база есть.... но все таки файловая система быстрее чем база... а онкретная задача может быть решена без базы... хотя очень интересно что именно Сириус хочет делать с фотографиями.... если что то супер пупер интеррактивное и динмичное то лучше бы конечо базу.
На моем сервере eMyz.ru файлы хранятся просто в нескольких каталогах (0-9), это для того что бы можно было разные файловые системы подключать. Имена у файлов - случайные числа. А в базе информация в стиле - id, имя реального фала на фиске - имя файла для отдачи пользователю, битрейт, итп, служебная информация.
Правда грешен, реализованно это все не на пхп, а на парсере по сему решение не самое замысловатое, однако вполне справляется со своими задачами и еще не одного нарекания на расширяемость не возникало.
 

Sirius

PHP+MySQL=LOVE
База существует для информации о пользователях конечно же в MySQL - одним из полей таблицы является путь (внешний (для отображения) и внутренний (для удаления фото))!
Вот я и решил создавать директории по месяцам!
То есть юзеры зарегистрировавшиеся за июнь, имеют фотки в директории /062002/ (текущий месяц и год) с именем файла ДДЧЧММСС-РРР где ДД - день, далее час, минута, секунда регистрации, РРР - случайное число для счастливчиков зарегенных в одну секунду!
В месяц регятся около 2000 юзеров, из них половина с фотками!


Вроде проблема уже решена - вот только интересно:
1. Можно ли было сделать лучше?
2. Почему файлы с буквой "я", например я.jpg не высвечиваются и сервер их закачивает, но потом не видит и даже не может удалить?
этой проблемы у меня щас нет, так как я всё переименовываю, но всё таки интересно!
 

Crazy

Developer
Автор оригинала: Sirius
Вроде проблема уже решена - вот только интересно:
1. Можно ли было сделать лучше?
Поскольку та ки не был озвучен тип файловой системы, то разговор об оптимальности того или иного решения вообще был лишен смысла. :) Сделал? Работает? Оставь как есть. :)

2. Почему файлы с буквой "я", например я.jpg не высвечиваются и сервер их закачивает, но потом не видит и даже не может удалить?
На твоем месте я бе не игрался созданием файлов с руссими именами. В латинском алфавите так много хороших букв...

этой проблемы у меня щас нет, так как я всё переименовываю, но всё таки интересно!
Проблемы в том, что не все файловые системы адекватно воспринимают русские буквы. Особенно -- если локаль не настроена.
 

tony2001

TeaM PHPClub
не понимаю зачем надо хранить картинки в каком-то строгом порядке, если есть база. запиши в базу все свойства картинок и работай с базой, а не с директориями.
 
Сверху