Как стать автором
Обновить

Комментарии 10

Для форума много не надо, по-моему легче написать свой.
А еще неважно какой скрипт, чтоб он не создавал нагрузки — ставим перед ним squid, и кешируем им всю статику
Можно несколько серверов с squid в разных странах + rrdns для разноса нагрузки
Проблема в том, имхо что большое количество файлов — ненужная нагрузка на обращение к папке с файлами:
Как известно, при большом количестве файлов для ускорения доступа, рекомендуется их рассортировывать по древовидной структуре папок.
Прокси в данном случае просто не поможет. поскольку кэш использоваться не будет.
Можно взять любой из понравившихся PHP-скриптов и в нужных местах написать:

$path = $root_path.'/'.$filename[0].'/'.$filename[1];
mkdir($path, 0777, true);

Пример, конечно, чисто гипотетический, но показывает, насколько всё просто.
Написать свой, со шлюхами и блэкджеком или перестроить существующий.
Возьмите, к примеру, алгоритм бинарного дерева и стройте его по ключу sha1
Если хост будет на linux и количество фотографий измеряется в сотнях тысяч и ФС ext4 — то вероятно проблема для вас не актуальна.
Единственный момент, не должно быть запросов типа ls — в этом случае как бы быстро всё не работало, а прогнать сотни тысяч названий займёт какое-то время.
rm * тоже не сработает тк есть ограничение на 256 файлов, если я правильно помню ))
Ну слава Одину, первый коммент по делу, спасибо!

В данном случае — ReiserFS, но на общее решение — должна-же быть подобная расфасовка. Даже несчастсный Wordpress и то распихивает файлы по подпапкам

И как, например, быть с FTP — получения листинга уже на 20 тыс картинок — достаточно «грустная» по времени операция.
C ReiserFS — дела не имел, но судя по тому что читал должно быть примерно также как с ext4
Если Вам нужна расфасовка, то можно написать скриптик который выполнит команду ln file1 sorted/1/1/1/1/file1 для пачки файлов (это небудет съедать много места на диске, но выглядит как костыль)
Если Вы загружаете файлы через ftp (я в фото движках не силён, но как-то сомнительно что фото загружаются через ftp) то можно написать скриптик проделывающий операцию обратную тоё что в предыдущем предложении (но тоже выглядит как костыль, но поменьше ))

Есть ещё вариант, отказаться от Windows и ftp, и начать использовать ssh и rsync

Вообще потратьте день или два на поиски движка и будьте готовы к тому что найденный движок не будет вас устраивать без допиливаний — это обычная практика, так я начал программировать ))
Вопрос в том что «отказаться» и «написать костыль» — это понятно.

>Вообще потратьте день или два на поиски движка и будьте готовы к тому что найденный движок не будет вас устраивать без допиливаний

Вот именно об этом вопрос — потрачено на поиски приличное время — а нужного результата нет. То ли проблема эта надуманная, толи я смотрю не те скрипты, то ли я чего-то не знаю об этой проблеме.

>это обычная практика, так я начал программировать ))

Я уже достаточно программирую — теперь иногда проще купить то, что нужно ;-) ;-) ;-)
Вот именно об этом вопрос — потрачено на поиски приличное время — а нужного результата нет. То ли проблема эта надуманная, толи я смотрю не те скрипты, то ли я чего-то не знаю об этой проблеме.

Есть золотые слова одного из моих знакомых — решать проблемы по мере поступления. Правда он владелец успешной компании и юрист по образованию. Думаю ему можно поверить.

Если очень хотите, проведите исследование и нагрузочное тестирование, выложите результат — мне будет интересно посмотреть :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации