Решил сделать перевод раздела Bookshelf, касающегося хранения вложений.
Рассмотрю здесь оба варианта: загрузка и скачивание.
О том, как устроена загрузка вложений в Siebel.
Когда пользователь сохраняет файл в файловую систему Siebel(Siebel File System), файл копируется из клиентской машины пользователя и передаётся в Siebel Server. Протокол передачи данных зависит от настроек Web сервера, а также от того какой протокол использовал Web клиент, например это может быть HTTP или HTTPS. Далее серверная компонента File System Manager (alias FSMSrvr) сжимает файл и сохраняет сжатый файл в файловую систему Siebel. Сжатие файлов и их переименование при сохранении полностью автоматические и зашиты в File System Manager (alias FSMSrvr).
О том, как Siebel отдаёт файлы из своей файловой системы пользователю.
Когда пользователь пытается скачать файл, хранящийся в файловой системе Siebel(например щелкнув по ссылке на вложении), серверная компонента File System Manager (alias FSMSrvr) обрабатывает этот запрос. Компонента взаимодействует с директориями файловой системы Siebel для получения файла и отправки его пользователю. Также как и при загрузке протокол отправки данных определяется способом подключения Web клиента к Web серверу. Обычно файл передаётся Web клиенту в сжатом виде. Но в некоторых случаях файл может быть передан в несжатом виде.
В следующих случаях файл передаётся несжатым:
Файловая система Siebel может быть как в одном каталоге, так и распределена между различными устройствами/директориями. В данном случае речь идет не о разбиении больших объёмов данных между разделами для хранения(это когда большие файлы размещаются не на одном ресурсе, а на нескольких по частям).
Директории для хранения данных указываются в параметре Siebel
File System (alias FileSystem) Предприятия(Enterprise)/серверной компоненты. Пути указываются через запятую. Если Siebel развернут на нескольких серверах, то рекомендуется использовать сетевые пути (например: "\\ds1\sfs,\\ds2\sfs,\\ds3\sfs") . Сетевой доступ на чтение и запись к данным директориям должен быть предоставлен пользователю, под которым запущен Siebel Server.
При запуске серверная компонента File System Manager (alias FSMSrvr) проверяет доступность всех директорий перечисленных в параметре Siebel File System (alias FileSystem). При сохранении вложения(Attachment) FSMSrvr размещает файл в одной из доступных директорий. Если выбранная директория недоступна, то FSMSrvr пишет в свой лог соответствующую ошибку и пытается записать файл в другую доступную директорию, если же ни один из путей не доступен, то в лог пишется соответствующая запись и возвращается ошибка.
Нужно понимать, что рано или поздно свободное место в одной из директорий может подойти к концу. В этом случае необходимо выделить новую директорию и запустить утилиту sfspartition, перераспределит хранящиеся в директориях файлы.
О том, как корректно распределять файлы между директориями файловой системы Siebel.
Сначала разберёмся какие параметры есть у утилиты sfspartition
Перед использованием утилиты sfspartition убедитесь, что для именуемой подсистемы ServerDataSrc параметр DSFileSystem равен *FSM*.
Установите значение параметра предприятия/компоненты Siebel File System (alias FileSystem) в новое значение, перечислив там пути к директориям файловой системы Siebel, пути должны быть перечислены через запятую, пробела после запятой быть не должно, бэкслеш в путях должен быть экранирован вторым бэкслешем. (Например: \\\\server1\\siebelFS1,"\\\\server1\\dir with space in name",\\\\server2\\siebelFS3,"\\\\server3\\new fsdir1")
Обратите особое внимание, что порядок директорий не должен меняться, т.е. если при вызове утилиты вы указали \\s1\d1,\\s1\d2,\\s2\d1, то в парметре Siebel File System (alias FileSystem) директории должны быть перечислены в том же порядке.(\\\\s1\\d1,\\\\s1\\d2,\\\\s2\\d1)
После запуска утилита перераспределит файлы из директорий, перечисленных в параметре /O в директории, перечисленные в параметре /F.
Рассмотрю здесь оба варианта: загрузка и скачивание.
О том, как устроена загрузка вложений в Siebel.
Когда пользователь сохраняет файл в файловую систему Siebel(Siebel File System), файл копируется из клиентской машины пользователя и передаётся в Siebel Server. Протокол передачи данных зависит от настроек Web сервера, а также от того какой протокол использовал Web клиент, например это может быть HTTP или HTTPS. Далее серверная компонента File System Manager (alias FSMSrvr) сжимает файл и сохраняет сжатый файл в файловую систему Siebel. Сжатие файлов и их переименование при сохранении полностью автоматические и зашиты в File System Manager (alias FSMSrvr).
О том, как Siebel отдаёт файлы из своей файловой системы пользователю.
Когда пользователь пытается скачать файл, хранящийся в файловой системе Siebel(например щелкнув по ссылке на вложении), серверная компонента File System Manager (alias FSMSrvr) обрабатывает этот запрос. Компонента взаимодействует с директориями файловой системы Siebel для получения файла и отправки его пользователю. Также как и при загрузке протокол отправки данных определяется способом подключения Web клиента к Web серверу. Обычно файл передаётся Web клиенту в сжатом виде. Но в некоторых случаях файл может быть передан в несжатом виде.
В следующих случаях файл передаётся несжатым:
- Файл имеет расширение .zip, .z, .tgz, .gz, .gif, .jpg, .jpeg
- Web браузер клиента не поддерживает сжатие
- Параметр текущей серверной компоненты(например FINS Object Manager) Compressed File Download (alias CompressedFileDownload) установлен в значение False.
- Если используется Siebel Mobile Web Client, то сжатие настраивается параметром CompressedFileDownload в секции [InfraUIFramework]
Файловая система Siebel может быть как в одном каталоге, так и распределена между различными устройствами/директориями. В данном случае речь идет не о разбиении больших объёмов данных между разделами для хранения(это когда большие файлы размещаются не на одном ресурсе, а на нескольких по частям).
Директории для хранения данных указываются в параметре Siebel
File System (alias FileSystem) Предприятия(Enterprise)/серверной компоненты. Пути указываются через запятую. Если Siebel развернут на нескольких серверах, то рекомендуется использовать сетевые пути (например: "\\ds1\sfs,\\ds2\sfs,\\ds3\sfs") . Сетевой доступ на чтение и запись к данным директориям должен быть предоставлен пользователю, под которым запущен Siebel Server.
При запуске серверная компонента File System Manager (alias FSMSrvr) проверяет доступность всех директорий перечисленных в параметре Siebel File System (alias FileSystem). При сохранении вложения(Attachment) FSMSrvr размещает файл в одной из доступных директорий. Если выбранная директория недоступна, то FSMSrvr пишет в свой лог соответствующую ошибку и пытается записать файл в другую доступную директорию, если же ни один из путей не доступен, то в лог пишется соответствующая запись и возвращается ошибка.
Нужно понимать, что рано или поздно свободное место в одной из директорий может подойти к концу. В этом случае необходимо выделить новую директорию и запустить утилиту sfspartition, перераспределит хранящиеся в директориях файлы.
О том, как корректно распределять файлы между директориями файловой системы Siebel.
Сначала разберёмся какие параметры есть у утилиты sfspartition
Ключ | Значение | Описание | Обязательность |
---|---|---|---|
/O | Пути к текущим директориям файловой системы Siebel | Пути должны быть перечислены через запятые, после запятой пробела быть не должно. Если пути содержат пробелы то необходимо указывать значения этих путей в двойных кавычках.
\\server1\siebelFS1,"\\server1\dir with space in name",\\server2\siebelFS3 |
Да |
/F | Директории файловой системы Siebel в которые будут распределены файлы | Пути должны быть перечислены через запятые, после запятой пробела быть не должно. Если пути содержат пробелы то необходимо указывать значения этих путей в двойных кавычках. \\server1\siebelFS1,"\\server1\dir with space in name",\\server2\siebelFS3,"\\server3\new fsdir1" |
Да |
/H | Y/N | По умолчанию Y. Если установлено значение Y, то утилита автоматически добавляет ко всем перечисленным путям поддиректорию att. Если же вы не хотите перераспределять файлы из поддиректорий att, то устанвоите значение N | Нет |
Перед использованием утилиты sfspartition убедитесь, что для именуемой подсистемы ServerDataSrc параметр DSFileSystem равен *FSM*.
Установите значение параметра предприятия/компоненты Siebel File System (alias FileSystem) в новое значение, перечислив там пути к директориям файловой системы Siebel, пути должны быть перечислены через запятую, пробела после запятой быть не должно, бэкслеш в путях должен быть экранирован вторым бэкслешем. (Например: \\\\server1\\siebelFS1,"\\\\server1\\dir with space in name",\\\\server2\\siebelFS3,"\\\\server3\\new fsdir1")
Обратите особое внимание, что порядок директорий не должен меняться, т.е. если при вызове утилиты вы указали \\s1\d1,\\s1\d2,\\s2\d1, то в парметре Siebel File System (alias FileSystem) директории должны быть перечислены в том же порядке.(\\\\s1\\d1,\\\\s1\\d2,\\\\s2\\d1)
После запуска утилита перераспределит файлы из директорий, перечисленных в параметре /O в директории, перечисленные в параметре /F.