2013-09-19 3 views
0

Я занимаюсь созданием веб-страницы, которая позволит пользователю загружать видео/mp3/изображения. Я просматривал поиск чего-то, что указывало бы мне в правильном направлении, но ничего не помогло бы прояснить это.Предложения по иерархии NFS

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

Пример 1:

htdocs/user/media/image 

htdocs/user/media/video 

htdocs/user/media/audio 

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

Пример 2:

htdocs/media/image 

htdocs/media/video 

htdocs/media/audio 

этот вариант кажется мог бы получить из рук очень быстро и может повлиять на скорость доступа к файлам.

ответ

0

Все дело в том, что будет делать ваше приложение.

Я думаю, что лучше всего для вашего приложения было бы создать случайное имя для каждого загружаемого изображения, а затем создать структуру вложенных папок для хранения изображений. Например, если пользователь загружает фотографию и назначает ей имя 1234.png. Затем вы можете сохранить это изображение в структуре папок //1/2/1234.png, аналогично, ab234.png будет храниться в //a/b/ab234.png. Эта структура позволяет увеличивать, сводит к минимуму количество папок и сводит к минимуму количество файлов в папке.

Для индексирования файлов вы можете использовать базу данных MySql. В базе данных MySql вы можете иметь таблицу, которая связывает userIds с изображениями на диске. В вашей таблице будет несколько столбцов. Для пользователя '1' с изображением 1234.png запись в таблице будет < 1,1234.png, a/b>

+0

Будет ли сохранен все конкретный пользовательский носитель в той же структуре папок (то есть a/b /) или каждая загрузка имеет случайную структуру папок, и таблица просто отслеживает, какие изображения принадлежат каждому пользователю и просто захватывает их со всех сторон? это похоже на то, как использовать facebook для хранения изображений (до метода haystack)? Я помню сохраненные фотографии оттуда и имея имя более 50 случайных символов. –

+0

Каждая загрузка имеет случайную структуру папок, и таблица просто отслеживает, какие изображения принадлежат каждому пользователю и просто захватывает их со всех сторон. Так много компаний/небольших проектов хранят данные, потому что они очень легки и довольно хорошо расширяются. Как только вы попадаете в диапазон 100-х миллионов, вы можете настроить способ хранения изображений. Я также предлагаю, что по мере импорта изображений вы переформатируете изображения на все, чтобы они были стандартного размера и, возможно, даже создавали несколько версий (меньшие размеры для использования в виде миниатюр и т. Д.) – milk3422

+0

Я полагаю, что если я получу миллионы, у меня будет большая рыба жарить в любом случае. Еще один вопрос - любые предложения по наилучшему способу защиты файлов пользователей в такой структуре? –

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