PDA

Просмотр полной версии : Создание схемы хранения большого количества файлов на сервере


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
я нифига не понял
для каждого пользователя/альбома рекомендуется ли делать папку?

REBUUS
01.01.2010, 19:09
просто создай три папки в одном месте mini , big, ava и каждую фоку закидывай в каждую папку с своими размерами но с одним и тем же названием потом обращайся к ним так:
http://sitename/ava/00000001.jpg
http://sitename/mini/00000001.jpg
http://sitename/big/00000001.jpg

REBUUS
01.01.2010, 19:11
а лучше сделай в корне папку 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
Способ размещения файлов в каждой конкретной задаче можно реализовать по-разному, поэтому однозначного решения нет.

suser
02.01.2010, 00:09
я нифига не понял
для каждого пользователя/альбома рекомендуется ли делать папку?
Думаю не надо.

Лучше мб создавать папку с названием к примеру первые 6 символов от хеша и записывать в конфиг имя и сохранять в неёю если количество файлов в ней больше допустим 100 - создавать новую папку и тд