Справочный центр
Сервер документов Р7-Офис

Сохранение файла

Нижеперечисленные шаги объясняют процесс сохранения на Сервере документов.

  1. Пользователь редактирует документ в редакторе документов.
  2. Редактор документов отправляет изменения сервису редактирования документов.
  3. Пользователь закрывает редактор документов.
  4. Сервис редактирования документов отслеживает окончание работы с документом и собирает изменения, полученные от редактора документов в один документ.
  5. Сервис редактирования документов оповещает сервис хранения документов об окончании редактирования документа, используя callbackUrl из JavaScript API и возвращает ссылку на изменённый документ.
  6. Сервис хранения документов скачивает файл документа со всеми изменениями, сохранёнными из сервиса редактирования документов и сохраняет его.
  1. Создайте обработчик обратных вызовов, чтобы сохранить документ из сервиса редактирования документов.
  2. Создайте html, чтобы Открыть документ.
  3. В скрипте конфигурации, для инициализации Редактора документов, укажите ссылку на файл с обработчиком обратных вызовов в строке параметра.
    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 - имя сервера, на котором установлены менеджер документов и сервис хранения документов.
  4. Откройте ваш html файл в браузере и отредактируйте ваш документ.
  5. Закройте Редактор документов. Проверьте ваш документ приблизительно через 10 секунд. Все изменения должны быть сохранены, что будет означать, что конфигурация работает корректно.

Когда редактирование документа завершено, сервис редактирования документов оповещает об этом сервис хранения документов. Время выполнения этой операции вычисляется с использованием времени конвертации файла в формат Office Open XML (которое зависит от размера файла, его сложности и мощности компьютера, и может быть достаточно большим), и начального времени задержки конвертации файла (которое по умолчанию равно 5 секундам). В большинстве случаев это время равно приблизительно 10 секундам, после того, как редактирование завершено.

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

Для Linux - /etc/r7office/documentserver/default.json
Для Windows - %ProgramFiles%\R7OFFICE\DocumentServer\config\default.json

Если вы хотите изменить его, вы можете использовать файл local.json, где должны быть сохранены все редактируемые параметры. Этот файл должен быть создан в той же папке, что и файл default.json и полная структура объектов для необходимых параметров должна быть сохранена (смотрите примеры ниже).

Пожалуйста, не редактируйте содержимое файла default.json напрямую. Значения по умолчанию будут перезаписаны каждый раз, когда вы перезапускаете Docker-контейнер или обновляете Сервер документов до новой версии, и все ваши изменения будут утеряны.
Параметры
Параметр Описание Тип Пример
services.CoAuthoring.server.savetimeoutdelay Определяет начальное время задержки конвертации (в миллисекундах) после того, как редактируемый файл был закрыт. целочисленный 5000
Пример файла конфигурации local.json
{
    "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 при отправке запроса к обработчику обратных вызовов.