Вопрос знатокам. Как сгенерировать ссылку на файл для пользователя с целью управлением доступа к данному файлу? Примечание: файл один пользователей много.
11.06.2017 16:08:40
Вопрос знатокам. Как сгенерировать ссылку на файл для пользователя с целью управлением доступа к данному файлу? Примечание: файл один пользователей много.
|
|
|
|
11.06.2017 19:39:20
|
|||
|
|
11.06.2017 21:39:22
Денис Сон, платный доступ.
|
|
|
|
12.06.2017 00:04:34
Файл отдавать скриптом.
Когда предоставляете файл кому либо генерируете уникальный код и сохраняете. Пользователь обращается к скрипту и в качестве параметра этот уникальный код. Скрипт проверяет и если все ок - отдает файл Есть проблема с ЧПУ умного фильтра. Голосуйте за |
|
|
|
13.06.2017 08:51:37
В свое время, делал подобное через симлинки:
Создал инфоблок, в котором создавались элементы по каталогам с привязкой к файлам. Доступ к просмотру элементов инфоблока был только у определённых групп пользователей. В шаблоне компонента делалась проверка, если человек состоит в определённой группе и симлинк для файла у данного пользователя еще не создан, то при заходе на страницу для нужных файлов генерировалась ссылка. Ну и сами симлинки удалялись по крону каждую ночь, чтобы ссылки долго не жили. |
|
|
|
13.06.2017 12:09:34
Ух какая-тема.
Вообще решения есть и довольно не простые. По собственному опыту могу сказать что встречал подобные решения и подходы: 1) Отдавать прямую ссылку на файл "как есть", проверяя права только на показ ссылки. Результат: + быстро отдается файл + почти ничего не нужно писать - зная ссылку можно получить файл и без прав 2) Писать страницу на php, которая через readfile будет отдавать контент файла в браузер пользователю Результат: + Нужно писать не так много кода + Контролируется полный скоп прав (можно отобрать права на файл и он станет недоступным) - при большой нагрузке (или больших файлах) сайт умрет 3) Писать страницу на php, которая копирует файл на определенное время и выдает временную ссылку (по истечению X-времени удаляет файл) Результат: + Контролируется полный скоп прав (можно отобрать права на файл и он станет недоступным) + Файл отдается быстро - Зная ссылку на файл, кто угодно может его скачать в течении X времени - Нужно очень много места, т.к. фактически под каждого пользователя (или под каждый запрос) будет копировать файл 4) Написать плагин для nginx, который бы отдавал файл. Результат: + Контролируется полный скоп прав + Быстро отдается файл - Писать много кода на lua, а потом еще и поддерживать 5) Использовать nginx с его X-Accel-Redirect Результат: + Контролируется полный скоп прав + Быстро отдается файл + Не писать много кода - Нужно читать про настройку nginx и X-Accel-Redirect
Голосуй за идеи по развитию API Bitrix:
|
|
|
|
13.06.2017 13:33:27
Это уже интереснее
Суть в следующем: предположим вы отдаете файл в формате .avi, но не все, а только лишь некоторые (с) Кличко, могу воспроизводить этот файл. Для того чтобы его можно было смотреть с разных устройств - нужно выполнять конвертацию между форматами. Предположим, что мы живем в мире честных людей, тогда я вижу следующий вариант (комбинация 5 и 2 и 3 метода): 1) Вы делаете скрипт, который выдает hash токен на доступ к определенным файлам. Где-то храните связку - hash и доступных файлов. 2) Делаете скрипт, который через X-Accel-Redirect, при совпадении токена отдает файл. Таким образом, вы выдаете открытый всем (т.е. его можно подсмотреть в GET-параметрах) hash токен, по которому в течении определенного времени есть доступ к файлу. Например: Вы выдаете компании X доступ. Пишете hash - 123456789 И определенные файл: bitrix_developer.avi [ID: 1], bitrix_content_manager.avi [ID: 2], bitrix_framework.avi [ID: 3] И говорите: чтобы отдать файл пользователю вы должны отправить его: noname.com/download.php?file_id=1&hash=123456789 Это отправит пользователя на скачивание bitrix_developer.avi [ID: 1] от компании с хешем: 123456789 Когда истечет токен, он не сможет скачать файл. Полным перебором ID он может скачать все доступные файлы
Голосуй за идеи по развитию API Bitrix:
|
|
|
|
13.06.2017 21:37:36
Есть проблема с ЧПУ умного фильтра. Голосуйте за |
|||
|
|
13.06.2017 22:16:50
Там иначе нужно хранить хеш от связки - он же все равно знает 1 из 2 параметров
Голосуй за идеи по развитию API Bitrix:
|
|
|
|
14.06.2017 15:01:33
Станислав Шарапов, да, так и есть, будет отдаваться видео поток с плеером, типо ютуба.
|
||||
|
|
|||