Onlyoffice. Размер файла превышает ограничение, установленное для вашего сервера.

Рейтинг:   / 1
ПлохоОтлично 

У меня уже имеется настроенная мною связка серверов Nextcloud и Onlyoffice docs. О настройке и обновлении всей этой эпопеи писал ранее в статье:

https://typical-admin.ru/item/99-nextcloud-update-18-to-30

Всё нормально работает, но недавно столкнулся с жалобой сотрудника, что не получается открыть для редактирования большой xlsx-файл размером 111Мб. Onlyoffice выдавал ошибку о том, что размер файла превышает значение, установленное для сервера:

Чтобы решить эту проблему, нужно увеличить значение нескольких параметров на сервере Onlyoffice docs. И первый параметр можно найти в файле /etc/onlyoffice/documentserver/nginx/includes/ds-common.conf. Также, на этот файл ведёт символическая ссылка /etc/nginx/includes/ds-common.conf. В нём есть параметр:

client_max_body_size 100m;

Его надо увеличить до 200m. Затем применение параметров nginx:

nginx -t && nginx -s reload

Далее меня интересует параметр "maxDownloadBytes", находящийся в разделе "FileConverter", а также параметр "uncompressed": "300MB" для типа "xlsx;xltx;xlsm;xltm", находящийся в массиве "inputLimits". И всё это изобилие находится в одном большом конфигурационном файле /etc/onlyoffice/documentserver/default.json. Но! В документации сказано:

Если вы хотите изменить параметры, воспользуйтесь local.json файлом, в котором должны быть сохранены все отредактированные параметры. Этот файл находится в том же каталоге, что и default.json файл, и вся структура объекта для необходимого параметра должна быть сохранена. Не редактируйте содержимое файла default.json напрямую. Значения по умолчанию будут восстановлены при каждом перезапуске Docker-контейнера или обновлении ONLYOFFICE Docs до новой версии, и все ваши изменения будут потеряны.

Поэтому открываю файл /etc/onlyoffice/documentserver/local.json и в самом конце нахожу вот такие строки:

    "exponent": 65537,
    "exponentOld": 65537
  },
  "storage": {
    "fs": {
      "secretString": "wirKgwerdsghfgfs8QwH"
    }
  }
}

И между нижними двумя скобками надо вставить вот такую конструкцию:

    "exponent": 65537,
    "exponentOld": 65537
  },
  "storage": {
    "fs": {
      "secretString": "wirKgwerdsghfgfs8QwH"
    }
  },
  "FileConverter": {
    "converter": {
      "maxDownloadBytes": 209715200,
      "inputLimits": [
        {
          "type": "xlsx;xltx;xlsm;xltm",
          "zip": {
            "uncompressed": "1100MB",
            "template": "*.xml"
          }
        }
      ]
    }
  }
}

Выделил зелёным цветом то, что нужно добавить. Т.е. здесь увеличен параметр "maxDownloadBytes" до 209715200 байт (200Мб) и увеличен параметр "uncompressed" до 1100MB. Первый отвечает за максимальный размер файла, который можно передать конвертеру, а второй отвечает за максимальный размер декомпрессированного xlsx-файла. Ведь известно, что файл XLSX — это сжатый архив (ZIP), содержащий несколько XML-документов и служебных файлов, которые в распакованном состоянии занимают гораздо больше места, чем в упакованном. Теперь нужно применить конфигурацию, перезапустив сервисы Onlyoffice docs. Это делается командой:

systemctl restart ds-*

Потом, чтобы убедиться, что сервисы стартовали, надо ввести команду:

systemctl list-units --type=service --state=running

Эта команда покажет все запущенные сервисы, и среди них должно быть трое:

ds-converter.service loaded active running Docs Converter
ds-docservice.service loaded active running Docs Docservice
ds-metrics.service loaded active running Docs Metrics

Если их нет, или они не все, значит в конфиге допущена ошибка. Поэтому рекомендуется делать бэкапы конфигов перед их изменением.

Собственно всё, после этого большой xlsx-файл будет открываться для редактирования в Onlyoffice docs.

Донаты принимаются на кошельки:

Yoomoney:
4100118091867315

Карта Т-Банк (бывший Тиньков):
2200 7017 2612 2077

Карта Альфа-Банк:
2200 1539 1357 2013

You have no rights to post comments

Вы здесь: Home Мои Заметки Onlyoffice. Размер файла превышает ограничение, установленное для вашего сервера.