CommuniGate Pro
Версия 6.4
 

Хранилище Файлов

Пользователи CommuniGate Pro могут иметь Хранилище Файлов - набор HTML, JGEG и других файлов. Хранилище Файлов может содержать директории, которые могут содержать другие (вложенные) директории.

Для управления файлами пользователя в Хранилище Файлов может использоваться Модуль HTTP. Таким образом Хранение файлов пользователя может выступать в качестве персональной web-странички.

Для управления файлами пользователя в Хранилище Файлов и доступа к ним в CommuniGate Pro могут использоваться Модуль FTP, Модуль TFTP и расширение WebDAV Модуля HTTP.

Для управления файлами пользователя в Хранилище Файлов может использоваться Интерфейс Командной Строки CLI.

Общее число файлов и папок и общий размер всего Хранилища Файлов могут быть ограничены в Установках Пользователя.

Хранилище файлов пользователя предназначено для:

Специальные Файлы и Папки

Некоторые имена файлов, находящихся в Хранилище Файлов, зарезервированы для специального использования.

пустое
Когда не указано никакого имени файла, например, в HTTP URL: http://server:port/~username/ или http://server:port/~username или http://server:port/~username/subfolder/

В этом случае используется содержимое файла с предустановленным именем. Это имя задаётся в Установках Пользователя, и обычно оно установлено в default.html. Таким образом, запрос HTTP к http://server:port/~username/subfolder/ даёт такой же результат, как запрос к http://server:port/~username/subfolder/default.html.

freebusy.vfb
Этот текстовый файл содержит Информацию о Занятости пользователя (информацию Свободен/Занят). При изменении Главного Календаря Пользователя через модуль CommuniGate Pro MAPI, интерфейс XIMSS, модуль AirSync или CalDAV, модуль Веб Интерфейса Пользователя, этот файл удаляется.
При запросе этого файла, если он не существует, Сервер открывает данные Пользователя, открывает папку с Главным Календарём, генерирует Информацию о Занятости и сохраняет её в файле freebusy.vfb.

Если Информация о Занятости не может быть создана (например, если у Пользователя не существует Главного Календаря), HTTP модуль создаёт пустой набор данных Свободен/Занят и отправляет его клиенту.

any_name.meta
такие имена зарезервированы и не могут быть использованы.
private/logs/calls-yyyy-mmm
Эти текстовые файлы создаются и заполняются объектами Диалоги Сигналов. yyyy - это 4-х значный номер года, а mmm - это 3-х буквенное имя месяца.
Каждая запись в файле содержит поля, разделённые символом табуляции с информацией о звонке, выполненным или принятым Пользователем.
private/IM/Username@domainName.log
Эти текстовые файлы содержат Мгновенные Сообщения отправленные на и принятые с адреса Username@domainName.
Каждое мгновенное сообщение сохраняется в виде одной текстовой строки со следующими полями, разделёнными символом табуляции:
  • отметка времени (GMT): YYYYMMDDThhmmsss
  • направление: < для входящих, > для исходящих
  • deviceID: строка - для групповых чатов - идентификатор устройства отправителя или получателя, пустая строка в других случаях
  • тело: строка - тело сообщения в представлении объекта Строка.
Обратите внимание: имена, начинающиеся с символа тильда (~) используются для указания на файлы других Пользователей, и поэтому этот символ не может использоваться как первый символ имени файла.
Многие продукты Microsoft® используют начинающиеся с тильды имена для временных и служебных файлов. Во избежание проблем с этими продуктами всегда используйте поддиректории хранилища файлов Пользователя, а не корневую директорию.

Виртуальные Файлы и Папки

Виртуальные имена не ссылаются на реальные файлы, находящиеся в Хранилище Файлов, но они могут использоваться для получения определённой информации.

index.wssp
Это имя используется для Управления Хранилищем Файлов через HTML. Доступ к этим ресурсам требует проведения аутентификации.
freebusy.wssp
Это имя используется для получения форматированной информации о Занятости (информации Свободен/Занят). Фактические данные берутся из файла freebusy.vfb (смотрите выше).
pubcal/calendarName.ics
Подобные имена используются для получения содержимого указанных календарей пользователя в формате iCalendar. Такие виртуальные файлы могут использоваться для публикации календарной информации. Пользователь должен иметь право выбора на указанную папку.
$DomainSkins, $ServerSkins, $ClusterSkins
Эти виртуальные директории обеспечивают доступ к Общедоменным или Общесерверным/Общекластерным Web-Интерфейсам. Каждый Web-Интерфейс представлен как поддиректория; имя $unnamed$ используется для Безымянных Web-Интерфейсов.
Пользователь должен иметь надлежащие Права Доступа для того, чтобы просматривать и управлять этими директориями.
$DomainPBXApp, $ServerPBXApp, $ClusterPBXApp
Эти виртуальные директории обеспечивают доступ к Общедоменным или к Общесерверным/Общекластерным Средам Приложений Реального Времени. Варианты для разных языков представлены как поддиректории.
Пользователь должен иметь надлежащие Права Доступа для того, чтобы просматривать и управлять этими директориями.

Атрибуты Файлов

Каждый файл или директория могут иметь набор атрибутов или метаинформацию.

Например, в файле Betty.jpeg.meta содержится метаинформация о файле с фото Betty.jpeg: место, где была снята фотография, комментарии к ней и т.д.

Каждый атрибут является элементом XML.

Некоторые атрибуты "защищены": они могут изменяться только Пользователем-владельцем, Администратором Севера или Домена, или другим Пользователем, которому были даны полные права на управление этим файлом или директорией.


Права Доступа к Файлам

Сервер CommuniGate Pro ведёт Списки Прав Доступа (ACL) для каждого файла или директории в Хранилище. Эти Списки хранятся в виде защищённого атрибута <ACL>.

Список Прав Доступа используется для управления возможностью Доступа к Чужим Папкам, позволяющей Пользователю получать доступ к Папкам других Пользователей.

Все файлы и директории в Хранилище Файлов Пользователя вне директории private открыты с правом "просматривать" (директории) и "читать" для любого, в том числе анонимного, пользователя. Например, такие файлы доступны с помощью не аутентифицированных запросов HTTP, и они могут быть использованы для создания персональных web-страничек.

Пользователь-владелец имеет полные права доступа ко всем файлам и директориям своего Хранилища Файлов.

Администратор Сервера с правами доступа Все Пользователи и Домены имеет полный доступ ко всем Пользователям Сервера (или Кластера).

Администраторы Домена с правом доступа Полный доступ ко всем Папкам имеют полные права доступа ко всем Папкам Пользователей в своих Доменах.

Пользователь - владелец Папки может предоставить определённые ограниченные права другим пользователям, управляя этими правами при помощи Списка Прав Доступа.

Поддерживаются следующие права доступа к Папке:
l (просмотр, только директории)
Если вы предоставляете пользователю право доступа Просмотр, то пользователь сможет увидеть содержимое директории.
d (Удаление, только директории)
Если вы предоставляете пользователю право доступа Удаление, то пользователь сможет удалять файлы и пустые поддиректории из этой директории.
r (Чтение)
Если вы предоставляете пользователю право доступа Чтение на файл, то пользователь сможет читать файл и его незащищённые атрибуты. Если вы предоставляете пользователю право доступа Чтение на директорию, то пользователь сможет читать все файлы в этой директории, для которых не указаны явные права доступа.
w (Запись)
Если вы предоставляете пользователю право доступа Запись на файл, то пользователь сможет записывать в файл и изменять его незащищённые атрибуты. Если вы предоставляете пользователю право доступа Запись на директорию, то пользователь сможет записывать во все файлы в этой директории, для которых не указаны явные права доступа, а также создавать новые файлы в этой директории.
a (Управлять)
Если вы предоставляете пользователю право доступа Управлять, то пользователь сможет изменять Списки Прав Доступа и другие "защищённые" атрибуты.

При создании директории, Список Прав Доступа родительской директории копируется во вновь созданную директорию.


Совместный доступ к Личным Файлам

Доступ на чтения к файлам, находящимся внутри директории private, может быть предоставлен другим пользователям CommuniGate Pro и внешним "гостям" с помощью защищённого атрибута <accessPwd>.

Каждый атрибут <accessPwd> должен содержать элемент <key/>, в котором содержится случайная строка - пароль доступа. Рекомендуется также добавлять элемент(ы) <EMail/> для указания там адреса (адресов) электронной почты пользователей, которым был выслан этот пароль доступа.

Пример:
<accessPwd>
  <key>dyf984897498ih12ui3u-3y887</key>
  <EMail realName="User Name">user1@domain1.dom</EMail>
  <EMail>user2@domain2.dom</EMail>
</accessPwd>

Если такой атрибут добавляется для директории private, то с его помощью можно получить альтернативный путь доступа ко всем файлам и поддиректориям в этой директории:

protected/pwd/access-password/

Если такой атрибут добавляется для директории private/dir1/dir2, то с его помощью можно получить альтернативный путь доступа ко всем файлам и поддиректориям в этой директории:

protected/dir1/pwd/access-password/dir2/

Если для директории private/dir1/dir2 заданы XML атрибуты из приведённого выше примера, то пользователь может использовать альтернативную ссылку на личный сайт:

http://server:port/~username/protected/dir1/pwd/dyf984897498ih12ui3u-3y887/dir2/file.name

Пользователь может отправить такой URL на адреса user1@domain1.dom, user2@domain2.dom и другие. Получатели будут иметь доступ к файлу file.name через эту ссылку.

Пользователь может отобрать это право доступа, удалив этот атрибут <accessPwd/>.

Альтернативные пути к файлам могут использоваться при работе по FTP и TFTP протоколам, а также во всех других компонентах CommuniGate Pro, обращающихся к Хранилищу Файлов Пользователя.


Управление через HTML

Пользователи могут управлять настройками Хранилища Файлов Пользователя через любой браузер. Есть два метода доступа к страницам управления Хранилищем Файлов:
  • Открыв сессию Веб интерфейса пользователя, использовать ссылку Файлы в панели навигации Веб Интерфейса Пользователя.
  • Открыв файл Index.wssp, находящийся на своём персональном Веб сайте:
    http://domain.dom:8100/~username/Index.wssp
    Браузер откроет диалоговое окно Входа (аутентификации), и пользователь должен будет ввести своё имя Пользователя и пароль для того, чтобы открыть страницу управления.

Администраторы Сервера с правами доступа Может менять установки Всех Доменов и Пользователей и администраторы Домена с правами Полный доступ ко всем Файлам имеют доступ к Хранилищу Файлов других Пользователей.

Администраторы Домена и Сервера могут получить доступ к Хранилищу Файлов любого Пользователя через Веб Интерфейс Администратора: на страницах управления Пользователем в навигационной панели содержится ссылка Файлы.

При любых методах управления для администрирования Хранилища Файлов используются похожие HTML страницы, для примера обратитесь к разделу Файлы Веб Интерфейса Пользователя.


Управление через HTTP

Данные в Хранилище Файлов могут быть изменены через методы HTTP 1.1 PUT, DELETE, и MOVE. Некоторые средства для разработки HTML страниц могут использовать эти методы для загрузки файлов на сервер.

В таких HTTP запросах должны содержаться данные аутентификации: имя Пользователя - владельца Хранилища Файлов (или имя Пользователя - Администратора Сервера/Домена) и пароль Пользователя.


Доступ к Хранилищу Файлов по HTTP

CommuniGate Pro позволяет каждому пользователю создать свой персональный Веб сайт. URL на Хранилище Файлов Пользователя accountname@domainname имеет вид:
<http://domainname:port/~accountname>  где port это номер порта, через который работает модуль WebUser.
Например, персональный Веб сайт пользователя jsmith@client1.com находится по адресу:
<http://client1.com:8100/~jsmith>

Для доступа к персональным Веб сайтам используется тот же HTTP порт, что и для работы через Веб Интерфейс Пользователя (по умолчанию - 8100).

Наряду с префиксом ~ в Установках Домена могут быть заданы альтернативные префиксы. Альтернативным префиксом может быть пустая строка.

Все правила Маршрутизации, описанные в разделе Доступ, применяются к ссылкам на персональные Веб сайты, так что в этих ссылках также могут использоваться Псевдонимы Пользователя и Домена.

Доступ к Персональным Веб сайтам может осуществляться и без префикса, используя только серверную часть URL-строки. Когда Сервер CommuniGate Pro получает входящее HTTP соединение на порт модуля WebUser, то он использует специальную процедуру для Маршрутизации Домена.

Если имя домена user.domain.com имеет A-запись в DNS, указывающую на IP адрес сервера CommuniGate Pro, а в Маршрутизаторе CommuniGate Pro имеются следующая запись:
<LoginPage@user.domain.com> = userA@domainB.com
и Пользователь userA существует в Домене CommuniGate Pro domainB, то для доступа к персональному Веб сайту (Хранилищу Файлов) пользователя userA@domainB.com может использоваться URL http://user.domain.com/.

В Хранилище Файлов должен отсутствовать файл index.wssp. Это имя зарезервировано для форм Управления Хранилищем Файлов.

Домашняя (используемая по умолчанию) страница персонального Веб-сайта должна иметь имя default.html. Это означает, что если имя файла явно не указано, то подразумевается имя default.html. Если в Хранилище Файлов есть папки (поддиректории), то запрос вида http://server:port/prefix user/folder/ приведет к выдаче файла default.html, находящегося в этой поддиректории.

Имя файла, используемого по умолчанию, указывается в Установках Пользователя и может быть задаваться для каждого Пользователя индивидуально.


Доступ по FTP и Управление

Данные в Хранилище Файлов могут быть изменены через FTP Модуль CommuniGate Pro. Когда Пользователь соединяется с FTP модулем, его "корневой" (а также текущей) директорий считается верхняя директория Хранилища Файлов Пользователя.


Доступ по WebDAV и Управление

Данные в Хранилище Файлов могут быть изменены через расширение WebDAV Модуля HTTP CommuniGate Pro.
используйте URL вида http://server:port/WebDAV/ или https://server:port/WebDAV/ для настройки клиента WebDAV.

Доступ к разделу /WebDav/ требует аутентификации, и Пользователя и в его Домене Услуга WebSite должна быть включена.
Этот раздел предоставляет аутентифицированному Пользователю доступ к корню Файлового хранилища.

Протокол WebDAV использует в качестве транспорта протокол HTTP, реализуемый модулем HTTPU. Откройте установки Модуля HTTPU и найдите раздел Доп. протоколов:

Доп. протоколы
FileDAV:

Используйте эту настройку для того, чтобы указать, какую информацию модуль Доступа к Файлам по WebDAV должен сохранять в Журнале работы Сервера.

Записи, помещённые модулем Доступа к Файлам по WebDAV в Журнал работы Сервера, имеют пометку FileDAV.


Права Доступа к Файлам

CommuniGate Pro позволяет Пользователям получать доступ к папкам других Пользователей.
Доступ к этим чужим Папкам (так же известными как общие или совместно используемые Папки) контролируется через Список Прав Доступа к Папке.

Для доступа к Папке другого Пользователя, имя Папки должно быть указано как ~accountname/filname. Например, для доступа к файлу images/pict01.jpg Пользователя Boss, имя файла должно быть указано как ~Boss/images/pict01.jpg.

Если на Сервер есть несколько локальных Доменов, доступ к файлам разных доменов должен быть задан путём указания полного имени Пользователя. Например, для доступа к файлу images/pict01.jpg Пользователя designer в домене client.com, имя файла должно быть указано как ~designer@client.com/images/pict01.jpg.

Имена Пользователей, указанные после знака "~", обрабатываются в Маршрутизаторе; таким образом, вместо реального имени Пользователя может использоваться Псевдоним Пользователя, к которому будут применяться все правила из Таблицы Маршрутизации.


Подписка на Файлы

У каждого пользователя есть набор Подписки на Файлы - набор имён файлов и директорий.

Этот список поддерживается некоторыми клиентами. Обычно он содержит имена директорий других Пользователей, например, ~accountName/dir1/dir2/, что позволяет клиентским приложениям показывать заранее заданные директории других Пользователей.


Руководство CommuniGate Pro. Copyright © 2020-2023, АО СталкерСофт