Хранение файлов: БД или файловая система
26 мая 2009, 13:13
Автор: bur
Задача: необходимо реализовать хранилище файлов, отдельный размер которых может достигать сотен мегабайт. Суммарных размер всех фалов - до 10-50Гб. Бывают мелкие (изображения), бывают крупные (видео-файла, архивы). Файлы закачивает администратор через админку без ФТП-доступа. Файлы могут иметь ограниченный доступ.
Как лучше реализовать такое хранилище:
1) хранить бинарники в БД, обрабатывая запросы через mod_rewrite и раздавая скриптами.
2) хранить в файловой системе, чтобы Apache(nginx) сам занимался раздачей.
Хотелось бы узнать, как эффективно воспользоваться вариантом (1), т.к. он более привлекателен из-за:
- эффективной настройки прав доступа,
- удобства создания бэкапов в виде дампов (хоть и титанический, но всё же один файл).
Если (1) совсем не подходит для данных целей, как в (2) быть с ограничением прав доступа? Пример: некоторые (не все) файлы можно раздавать только зарегистрированным юзерам. Список пользователей в БД, то есть арбитром выступает скрипт.
Как лучше реализовать такое хранилище:
1) хранить бинарники в БД, обрабатывая запросы через mod_rewrite и раздавая скриптами.
2) хранить в файловой системе, чтобы Apache(nginx) сам занимался раздачей.
Хотелось бы узнать, как эффективно воспользоваться вариантом (1), т.к. он более привлекателен из-за:
- эффективной настройки прав доступа,
- удобства создания бэкапов в виде дампов (хоть и титанический, но всё же один файл).
Если (1) совсем не подходит для данных целей, как в (2) быть с ограничением прав доступа? Пример: некоторые (не все) файлы можно раздавать только зарегистрированным юзерам. Список пользователей в БД, то есть арбитром выступает скрипт.