Просмотр полной версии : Создание схемы хранения большого количества файлов на сервере
superboy4
01.01.2010, 18:32
Итак. Скажим, мне нужно хранить огромное количество фотографий на сервере. Это фотографии альбомов и аватар пользователей. Ежу ясно, что в базе данных следует хранить пути к каждой конкретной фотографии, а сами фотографии в папках или папке, и каким образом, по какой схеме?
Вот в этом у меня и проблема как грамотно хранить фотографии в папках, чтобы не было в дальнейшем проблем в результате масшабирования??
Создавать папку для каждого альбома, для каждого пользователя, как это делается для высоконагруженных проектов? :(
Deathdreams
01.01.2010, 18:52
Можешь ещё распределять на поддомены.
Например на одном поддомене все картинки в большом размере.
На другом все в уменьшеном.
На третьем в увеличенном.
А вообще лучше всего намутить скрипт обработчик запросов.
сделать такую штукенцию, например будет такой запрос к получению аватара:
get_pic.php?id=%ID пользователя%&size=%размер%
Где %размер%, например, avatar или small или big
А скрипт сам сделает запросы и выведет нужную фоту.
superboy4
01.01.2010, 19:04
я нифига не понял
для каждого пользователя/альбома рекомендуется ли делать папку?
просто создай три папки в одном месте mini , big, ava и каждую фоку закидывай в каждую папку с своими размерами но с одним и тем же названием потом обращайся к ним так:
http://sitename/ava/00000001.jpg
http://sitename/mini/00000001.jpg
http://sitename/big/00000001.jpg
а лучше сделай в корне папку img и в этой папке уже вот эти три папи, и тогда путь будет
http://sitename/img/ava/00000001.jpg
что бы легче и понятнее было потом и бэкап проще будет делать
Deathdreams
01.01.2010, 19:36
Мне печально, что ты ничего не понял.
Я дело сказал
Player#1
01.01.2010, 20:27
Думаю, не стоит создавать для каждого альбома отдельную папку.
Можно хранить все картинки в одном месте, но с префиксами.
например:
http://site/img/album1_1_big.jpg
http://site/img/album1_1_small.jpg
http://site/img/album1_2_big.jpg
http://site/img/album2_2_small.jpg
Можно использовать папки big, small, как предлагали выше.
Для упрощения вида ссылок использовать mod_rewrite
Способ размещения файлов в каждой конкретной задаче можно реализовать по-разному, поэтому однозначного решения нет.
я нифига не понял
для каждого пользователя/альбома рекомендуется ли делать папку?
Думаю не надо.
Лучше мб создавать папку с названием к примеру первые 6 символов от хеша и записывать в конфиг имя и сохранять в неёю если количество файлов в ней больше допустим 100 - создавать новую папку и тд
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot