Адресация файлов
Полнотекстовая база может создаваться путём добавления файлов или поиска внешних объектов в электронном каталоге. В подполе ^B формируется абсолютный или относительный путь к файлу на диске (например, C:/file.pdf), в подполе ^I — сетевой путь к файлу (например, [
libname.ru]).
Сетевой путь к файлу, указанный в подполе ^I, не модифицируется форматом. На его основе непосредственно генерируется гиперссылка на файл. Подполе ^B может преобразовываться и формировать гиперссылку, или выступать в роли параметра шлюза, который находит и возвращает нужный файл.
При наличии значений параметров FullTextPathDbn и FullTextPathWeb в секции [MAIN] INI файла WEB ИРБИС, предпринимается попытка преобразовать локальный путь к файлу, указанный в подполе ^B, в сетевой. (например, C:/dir/file.pdf может быть заменён на путь [
libname.ru]) Префиксная часть локального пути, заданная в FullTextPathDbn (например, FullTextPathDbn =С:/), заменяется на префиксную часть сетевого пути (например, FullTextPathWeb=http://libname.ru/)
В том случае если параметры FullTextPathDbn и FullTextPathWeb не заданы, значение подполя ^B передаётся шлюзу, который возвращает браузеру нужный файл. Шлюз может выгружать файлы по локальным путям (например, C:/dir/file.pdf) и FTP путям (например, [
libname.ru]) Но в случае если WEB сервер запускается как служба Windows, шлюз не будет работать с путями в локальной сети (например, \\my_computer\c\file.pdf и X:/file.pft)
В связи с тем, что WEB ИРБИС может выгрузить любой файл на жестком диске по запросу неавторизованного пользователя, необходимо обязательно применять ограничение доступных адресов. Рекомендуется ограничить их возможный диапазон, установив в INI файле WEB ИРБИС параметр Safe_File_Download=1 и перечислив через точку с запятой допустимые пути расположения файлов в параметре Safe_File_Paths.
Например:
Safe_File_Download=1
Safe_File_Paths=C:\irbis\datai\books\files;C:\web\images\
В случае если в v952^b указан относительный путь или имя файла, к нему будет добавляться нужный путь из Safe_File_Paths. Если указан абсолютный путь, то он принимается только тогда когда соответствует одному из путей Safe_File_Paths. Таким образом, решается как задача обеспечения безопасности, так и задача дополнения относительных путей нужными значениями.
Обработка файлов
При использовании в полнотекстовом АРМе Администратор режима разбиения «Каждая страница PDF(DJVU) файла как отдельный документ» результатом поиска оказываются записи, соответствующие только одной странице документа. Подполе ^B таких записей содержит имя несуществующего файла, префикс которого является реальным именем файла, а суффикс — номером страницы. Между именем файла и номером страницы находится разделитель, определяемый параметром FULL_TEXT_FileNamePrefixDiv в секции [FullText] INI файла WEB ИРБИС. Руководствуясь этими данными при обращении к файлу, шлюз выделяет из базового файла нужную страницу и передаёт её в браузер.
Операция разбиения файла на страницы выполняется консольными приложениями pdf2pdf.exe или djvused.exe, которые располагается в директории cgi WEB ИРБИС. Выделенные страницы сохраняются во временном файле, в директории, где находится основной файл документа.
При использовании этого режима следует учитывать ряд ограничений:
1. Директория с основным файлом документа должна быть открыта для консольного приложения на запись;
2. Запуск шлюзом другого приложения в IIS невозможен без специальной настройки;
3. При запуске сервера в режиме службы Windows выгружаемый файл может находиться только на локальном компьютере;
4. Если структура документа не корректна, приложение может не справиться с выделением нужной страницы. В этом случае пользователь получает сообщение «FILE NOT FOUND»
Рекомендации по упрощению ведения полнотекстовых баз
Ведение полнотекстовых баз значительно упрощает расположение полнотекстового АРМа Администратор и шлюза на одном физическом сервере. Если АРМ Читатель для полнотекстовых баз не используется, при этом полностью отпадает необходимость в дополнительных настройках шлюза или модулей.
Редактировано 1 раз. Последний раз 09.07.2011 16:08 пользователем Кирилл Соколинский (СЗТУ).