![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
||
|
|
| Smorodin |
|
|||
![]() Добрейший ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 10.4.2006 Где: Пермь Репутация: нет Всего: 1 |
Проект ориентирован на закачку файл пользователями. То есть файлов будет много. Файлы хранятся выше www дирректории (ОС - debian). Имена файлов - md5 по определенному алгоритму. Есть таблица в БД содержащая информацию по каждому файлу. При запросе файла, после прохождения проверки на права доступа к файлу, выдается пользователю скриптом в том виде, в каком был загружен.
Как лучше организовать хранение файлов? 1) Все в одной дирректории 2) Создавать дирректории по ID пользователя, который загрузил 3) Находил в интернете идею создать поддирректории с названием первого символа названия хранимого файла 4) Другое Что посоветуете? В данный момент уже есть необходимость размещения 3Гб небольших файлов. -------------------- Сделать можно все, только вопрос - когда? |
|||
|
||||
| IgorIV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
дата в названии директории
|
|||
|
||||
| ayax2005 |
|
|||
|
echo $smile ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 17.4.2008 Где: Питер Репутация: 2 Всего: 11 |
Сначала нужно понять чего вы хотите добиться - для этого, хотя бы приблизительно, нужно посчитать размер и количество постоянно хранимых файлов на перспективу.
1. Хранение всех файлов в одной директории накладно по скорости - процу проще сканировать небольшие объёмы файлов (где-то до 5000 файлов не обломно хранить в одном каталоге, но думаю у вас будет больше). 2. Создавать ли директории под конкретных пользователей - да, но само собой при загрузке первого файла ,а не при регистрации. Вообще, я думаю будут ещё и другие разделения - по типу или назначению изображений; возможно вы захотите добавить ещё и хранение других файлов - лучше задуматься на этапе проектирования и разделить и эти каталоги; Но какая будет вложенность: User->TypeFile->Img или TypeFile->User->Img и т.п. должна определять структура вашего сайта. 3.Формирование директории по имени файла - лишняя загрузка на хард в плане скачков по директориям. Этот вариант подходит для систем с неструктурированным контентом. 4.Т.к. при большом количестве файлов/посещаемости ваш хард не будет жить долго, всё это дело изначально нужно хранить на отдельном сервере. Нужно постараться оценить "родство" файлов - логично, что файлы, которые будут отображаться на одной странице (в альбоме пользователя, к примеру) должны храниться в одной директории. Если имена файлов вы формируете по md5 с солью - они у вас не будут совпадать. Длинна имён папок и глубина вложенности должна зависеть от количества файлов, пользователей, назначения и т.д. Сам путь к файлу вряд ли нужно хранить в БД - он должен высчитываться алгоритмом. На сервере изображений нужно будет настроить алиасы в ngx_http_core_module что бы на самой сранице пути оставались красивые и самые умные не прошарили от греха структуру ваших каталогов. Это сообщение отредактировал(а) ayax2005 - 5.1.2011, 01:26 -------------------- все вопросы - из-за неверной формулировки задачи |
|||
|
||||
| Smorodin |
|
||||||
![]() Добрейший ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 10.4.2006 Где: Пермь Репутация: нет Всего: 1 |
На январь план примерно 10Гб и около 20000 файлов. Вот и задумался =)
Полностью согласен Разделения не предвидится. Просто - файл. В браузере они отображаться не будут. Основной контент - архивы, текстовые документы, электронные книжки (проект а-ля в помощь студенту, файлы - лекции, учебники, иногда программы).
Понял =) Они не будут отображаться. Просто каталог файлов по категориям. Категории создаются пользователями.
С солью. И идет проверка на существование, на всякий случай =) Если _мало-ли_ существует, соль меняем. www дирректория: /var/www/user/data/www/domain.com Дирректория файлов: /var/www/user/data/files То есть из браузера получить доступ к файлу - никак. Только одним способом: domain.com/downloader/file-123 Который перед выдачей файла еще проверит, можно ли данный файл выдавать данному пользователю (строгая политика доступа к категориям по нескольким параметрам). -------------------- Сделать можно все, только вопрос - когда? |
||||||
|
|||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |