|
Как грамотно раздать права пользователям на доступ к файлам других пользователей?
|
|||
---|---|---|---|
#18+
Всем доброго времени! В общем, такой вопрос встал: есть сотня-другая пользователей, у каждого есть свой набор неких файлов, которые он хотел бы хранить на сервере, чтобы делится файлами с другими пользователями, но не со всеми а выборочно. (наподобие как вот права на фтп папкам раздаются) Т.е. например, у Пользователя 1 есть три файла, и он бы хотел, чтобы пользователи №2 и №4 могли у него скачивать эти файлы. То как лучше хранение файлов организовать: в БД или в директории? Я предлагал коллеге делать папку на сервере с названием GUID пользователя, пользователь туда закидывает файлы, а уже чтение для других пользователей этих файлов задаётся через доступ фс. Но он говорит, что тогда проект не будет мобильным, и придётся тягать с собой все эти разрешения и папки в случае переезда хостинга. И предлагает хранить файлы в БД. Но как тогда тут организовать контроль над раздачей прав? Может кто-то сталкивался с похожей задачей, то какое вы приняли решение? Сервер виндовый 2008 R2, IIS7.5, БД MS SQL 2012. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 01:09 |
|
Как грамотно раздать права пользователям на доступ к файлам других пользователей?
|
|||
---|---|---|---|
#18+
Не обязательно файлы в БД хранить. Сделай папку с правами на запись и давай файлам случайные имена, можно GUID, чтобы перебором не найти чужой файл. А в БД храни реальные имена, какой файл какому пользователю принадлежит и кому он его разрешил читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 08:19 |
|
Как грамотно раздать права пользователям на доступ к файлам других пользователей?
|
|||
---|---|---|---|
#18+
palladin600И предлагает хранить файлы в БД. Файлы в БД хранить не нужно, нужно хранить релятивный путь к файлу. Файлы лучше складывать в папки пачками не больше 1000 файлов на папку. Что-то там про переезд хостинга.. представь себе бекап на несколько терабайт, из которых файлы это 90% от всей базы как минимум, а то и больше. Файлы перекинуть гораздо легче, когда они в папках. Контроль над раздачей прав решайте на уровне записей в БД, запись это ID файла и релятивный путь к папке + имя файла. Для хранения файлов в папках лучше использовать GUID, а не оригинальное имя файла, оригинальное имя файла хранить в БД. Иначе может прилететь файл с большим именем, который не запишется в указанную директорию из-за ограничений на длину пути к файлу. palladin600Может кто-то сталкивался с похожей задачей, то какое вы приняли решение? Сейчас мы храним файлы в MongoDB GridFS с репликацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2017, 18:40 |
|
Как грамотно раздать права пользователям на доступ к файлам других пользователей?
|
|||
---|---|---|---|
#18+
hVosttСейчас мы храним файлы в MongoDB GridFS с репликацией. И сколько их у вас? Каков средний размер? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2017, 09:32 |
|
|
start [/forum/topic.php?fid=17&msg=39435640&tid=1349305]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 283ms |
0 / 0 |