К нам в техподдержку иногда приходят обращения с просьбой более подробно описать механизм работы приватного скачивания файлов и также помочь настроить его на определенные директории. [spoiler] На основании данных вопросов появилась идея создания простого компонента, который бы позволял без особых сложностей организовать приватное скачивание файлов на сайте. Результатом стал компонент private.download, который имеет следующие параметры:
Включить поддержку ЧПУ — Позволяет компоненту работать в режиме ЧПУ, результатом могут являться более приятные ссылки, например http://www.mysite.com/examples/my-com...oc.gif Идентификатор имени файла — Если не используется механизм ЧПУ, то в данном поле необходимо указать имя параметра в URL в котором будет передаваться имя файла для скачивания. Путь к директории с файлами — путь к директории с файлами, которые мы хотим защитить. Отдавать файл с помощью nginx (должен быть установлен) — если установлен nginx, то можно установить данный параметр, что разгрузит сервер. Учитывать загрузки в модуле статистике — если установлен модуль статистики, то можно фиксировать скачивания файлов.
При заходе на страницу на которой установлен компонент, мы увидим список файлов, которые мы можем скачать, т.е. у нас есть права доступ на их чтение.
При попытке скачать файл к которому у нас нет доступа мы получи сообщение об ошибке и предложение авторизоваться под пользователем, которые имеет необходимые права доступа к запрашиваемому файлу.
Этот замечательный компонент в кодировке UTF-8 можно скачать здесь
а как быть если файлы не лежат в одной папке, а загружены через элементы ИБ свойством типа "файл"? неужели после каждой загрузки нужно лезть в аплоад и вручную выставлять права?
С защищёнными файловыми хранилищами под IIS ситуация не такая радужная.
Варианты: - контролируемое скачивание через PHP. Память, время работы скрипта итд. - разграничение прав силами NTFS. Только вот когда права эти нужно добавлять для новых юзеров, а юзеров больше тысячи... да и из web-приложения рулить NTFS разрешениям то ещё удовольствие. - установка nginx перед IIS - кто пробовал?
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».