Нижеперечисленные шаги объясняют процесс сохранения на Сервере документов
- Пользователь редактирует документ в редакторе документов.
- Редактор документов отправляет изменения сервису редактирования документов.
- Пользователь закрывает редактор документов.
- Сервис редактирования документов отслеживает окончание работы с документом и собирает изменения, полученные от редактора документов в один документ.
- Сервис редактирования документов оповещает сервис хранения документов об окончании редактирования документа, используя callbackUrl из JavaScript API и возвращает ссылку на изменённый документ.
- Сервис хранения документов скачивает файл документа со всеми изменениями, сохранёнными из сервиса редактирования документов и сохраняет его.
Как это возможно сделать на практике
- Создайте обработчик обратных вызовов, чтобы сохранить документ из сервиса редактирования документов.
- Создайте html, чтобы Открыть документ.
- В скрипте конфигурации, для инициализации Редактора документов, укажите ссылку на файл с обработчиком обратных вызовов в строке параметра.
new DocsAPI.DocEditor("placeholder", { "document": { "fileType": "docx", "key": "Khirz6zTPdfd7", "title": "Пример названия документа.docx", "url": "https://example.com/url-to-example-document.docx" }, "documentType": "text", "editorConfig": { "callbackUrl": "https://example.com/url-to-callback.ashx" } });
Где example.com — имя сервера, на котором установлены менеджер документов и сервис хранения документов.
- Откройте ваш html файл в браузере и отредактируйте ваш документ.
- Закройте Редактор документов. Проверьте ваш документ приблизительно через 10 секунд. Все изменения должны быть сохранены, что будет означать, что конфигурация работает корректно.
Задержка сохранения
Когда редактирование документа завершено, сервис редактирования документов оповещает об этом сервис хранения документов. Время выполнения этой операции вычисляется с использованием времени конвертации файла в формат Office Open XML (которое зависит от размера файла, его сложности и мощности компьютера, и может быть достаточно большим), и начального времени задержки конвертации файла (которое по умолчанию равно 5 секундам). В большинстве случаев это время равно приблизительно 10 секундам, после того, как редактирование завершено.
Начальное время задержки конвертации необходимо для обеспечения возможности возвращения к редактированию файла, без его сохранения, например при перезагрузке веб-станицы с открытым для редактирования документом. По умолчанию начальное время задержки конвертации определяется в файле конфигурации Сервера документов, который может быть найден в следующих директориях:
/etc/r7office/documentserver/default.json
%ProgramFiles%\R7OFFICE\DocumentServer\config\default.json
Если вы хотите изменить его, вы можете использовать файл local.json, где должны быть сохранены все редактируемые параметры. Этот файл должен быть создан в той же папке, что и файл default.json и полная структура объектов для необходимых параметров должна быть сохранена (смотрите примеры ниже).
Параметр | Описание | Тип | Пример |
services.CoAuthoring.server.savetimeoutdelay | Определяет начальное время задержки конвертации (в миллисекундах) после того, как редактируемый файл был закрыт. | целочисленный | 5000 |
{
"services": {
"CoAuthoring": {
"server": {
"savetimeoutdelay": 5000
}
}
}
}
Принудительное сохранение
Сервис редактирования документов позволяет получить текущее состояние документа до окончания редактирования. В Сервере документов этот процесс называется forcesave. Когда он инициализируется, сервис редактирования документов выполняет запрос к Обработчик обратных вызовов со ссылкой на документ, передаваемой в качестве параметра url и параметром status, установленным в значение 6. Процесс принудительного сохранения может быть инициализирован двумя способами:
- С помощью запроса к командному сервису документов, с параметром c, установленным в значение forcesave. Параметр forcesavetype будет иметь значение 0 при отправке запроса к обработчику обратных вызовов.
- Включите режим editorConfig.customization.forcesave, установив значение этого параметра равным true в конфигурации инициализации редактора. В этом случае, каждый раз, когда пользователь будет нажимать кнопку Сохранить, будет произведено принудительное сохранение, и параметр forcesavetype будет иметь значение 1, когда запрос отправляется к обработчику обратных вызовов.
- Вы можете включить функцию повторения принудительного авто сохранения на Сервере документов в дополнительном файле конфигурации, который может быть найден (в случае, если вы уже его создали) или помещён по следующему пути:Для Linux —
/etc/r7office/documentserver/local.json
Для Windows —%ProgramFiles%\R7OFFICE\DocumentServer\config\local.json
ПараметрыПараметр Описание Тип Пример services.CoAuthoring.autoAssembly.enable Указывает, включён ли параметр повторения принудительного сохранения. Значением по умолчанию является false. логический false services.CoAuthoring.autoAssembly.interval Определяет временной интервал в минутах, между принудительными сохранениями. строка 5m Пример файла конфигурации local.json{ "services": { "CoAuthoring": { "autoAssembly": { "enable": true, "interval": "5m" } } } }
Параметр forcesavetype будет иметь значение 2 при отправке запроса к обработчику обратных вызовов.
Сохранение в исходном формате
Начиная с версии 7.0 параметр сервера assemblyFormatAsOrigin включен по умолчанию для сохранения собранного файла в исходном формате. Он используется для изменения формата файла с OOXML на ODF или для сохранения файлов с макросами.
Параметр | Описание | Тип | Пример |
services.CoAuthoring.server.assemblyFormatAsOrigin | Определяет, будет ли собранный файл сохранен в исходном формате или нет. Значение по умолчанию true. | логический | true |
{
"services": {
"CoAuthoring": {
"server": {
"assemblyFormatAsOrigin": true
}
}
}
}