Найти в Дзене
Типичный Админ

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

У меня уже имеется настроенная мною связка серверов 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": "300M

У меня уже имеется настроенная мною связка серверов 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"
}
}
]
}
}
}

Выделил зелёным цветом то, что нужно добавить:

-2

Т.е. здесь увеличен параметр "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

-3