Скачать плагин «Лимит загрузки» (версия 1.5.4) ↗
MD5: d5efe3d80808ed7a8c12d64ff5c2dbbb
Ознакомиться с функциями и описанием работы ↗ плагина.
1. Список необходимых пакетов
Для ВМ без внешних репозиториев и без доступа в интернет.
1.1. Что должно быть установлено (пакеты / команды)
На сервере с Корпоративным сервером 2024 обязательны:
nodejsunzip
Бэкенд-плагин написан на Node.js, версия ≥ 10 (рекомендуется 16+).
Установщик пытается установить nodejs сам через apt/dnf/yum/zypper, но в офлайне рекомендуется поставить пакет заранее системными средствами.
2. Что выполняет скрипт в процессе установки
Название скрипта:
r7-upload-limit-install.sh
Скрипт выполняет установку, обновление и удаление плагина «Лимит загрузки»:
- разворачивает бэкенд в директорию:
/opt/r7-upload-limit
- создаёт systemd-сервис:
r7-upload-limit
- создаёт и поддерживает конфигурацию:
/opt/r7-upload-limit/config/limit.json
- записывает runtime-параметры:
/opt/r7-upload-limit/.env
- копирует JS-инжекты в каталоги
assetsпорталов:/var/www/r7-office/admin/assets/ /var/www/r7-office/cddisk/assets/
- патчит
index.htmlпорталов:- admin:
/assets/inject-manager.js /assets/inject-upload-limit-tab.js /assets/inject-upload-limit-guard.js
- cddisk:
/assets/inject-manager.js /assets/inject-upload-limit-guard.js
- admin:
- патчит nginx:
- перенаправляет POST:
/api/v1/Documents/UploadPartial
на:
localhost:<SERVICE_PORT>
- на admin-хосте публикует:
/upload-limit/api/config
- на обоих хостах блокирует остальные запросы к
/upload-limit/api/*, возвращая код HTTP 404.
- перенаправляет POST:
- ведёт логи службы:
/var/log/r7-upload-limit/service.log journalctl -u r7-upload-limit.service
- поддерживает режим удаления (с вопросом — удалять ли
inject-manager.js); - на каждом старте службы запускает self-heal через
reconcile.sh.
3. Подготовка перед запуском
Распаковать архив:
unzip Plugin-upload-limit.zip -d r7-upload-limit
После распаковки структура каталога будет выглядеть так:
r7-upload-limit-install.sh
README.md
data/
├── inject-manager.js
├── inject-upload-limit-tab.js
└── inject-upload-limit-guard.js
backend/
├── server.js
├── reconcile.sh
├── r7-upload-limit.service
├── .env.example
├── config/
│ └── limit.json
└── data/
├── inject-manager.js
├── inject-upload-limit-tab.js
└── inject-upload-limit-guard.jsГде:
inject-manager.js— общий для нескольких плагинов и копируется без дублирования;inject-upload-limit-tab.js— нужен только для admin-портала;inject-upload-limit-guard.js— нужен и для admin, и для cddisk, потому что именно он показывает предупреждения на клиенте перед/во время загрузки.
4. Запуск скрипта
4.1. Установка
cd r7-upload-limit chmod +x r7-upload-limit-install.sh sudo bash ./r7-upload-limit-install.sh install
Скрипт производит установку с параметрами по умолчанию. В конце установки для справки выводятся применённые параметры.
4.2. Повторный запуск
Повторный запуск не ломает установленный плагин.
При повторном запуске выполняется обновление файлов плагина.
Использование ключей:
sudo bash ./r7-upload-limit-install.sh install sudo bash ./r7-upload-limit-install.sh update sudo bash ./r7-upload-limit-install.sh delete
Поддерживаются алиасы вида:
installupdatedeleteuninstallremove
4.3. Проверка после установки
Сервис:
systemctl status r7-upload-limit --no-pager journalctl -u r7-upload-limit.service -n 200 --no-pager
NGINX:
nginx -t systemctl reload nginx
Функциональная проверка:
- открыть admin-портал и убедиться, что появилась вкладка «Лимит загрузки»;
- изменить
defaultLimitили правила, сохранить и проверить, что обновился/opt/r7-upload-limit/config/limit.json; - попробовать загрузить файл, заведомо превышающий лимит — загрузка должна быть отклонена клиентом и/или сервером с кодом HTTP 413.
4.4. Удаление плагина
sudo bash ./r7-upload-limit-install.sh delete
Во время удаления:
- сервис останавливается и отключается;
- systemd-unit удаляется;
- frontend-файлы
inject-upload-limit-tab.jsиinject-upload-limit-guard.jsудаляются изadmin/cddisk; - nginx-патчи
R7_UPLOAD_LIMITудаляются; - каталог
/opt/r7-upload-limitудаляется; - логи в
/var/log/r7-upload-limitсохраняются; - будет задан вопрос: удалять ли
inject-manager.js; - если в
index.htmlобнаружены другие inject-плагины — скрипт предупреждает, что удаление manager может их сломать.
5. Инструкция для пользователя
1. Необходимо скачать любым удобным способом архив с плагином на сервер и распаковать архив:
unzip Plugin-upload-limit-*.zip -d r7-upload-limit
2. Перейти в распакованный каталог:
cd r7-upload-limit
3. Произвести установку:
chmod +x r7-upload-limit-install.sh sudo bash ./r7-upload-limit-install.sh install
Скрипт производит установку с параметрами по умолчанию. В конце установки для справки выводятся применённые параметры.
При повторном запуске выполняется обновление файлов плагина.
Повторный запуск НЕ ломает установленный плагин.
Скрипт установки поддерживает несколько ключей:
install— производит установку плагина;delete— производит удаление плагина;update— производит обновление плагина, необходимо, если плагин был частично удалён или устанавливаете новую версию.
Пример команд:
sudo bash ./r7-upload-limit-install.sh install sudo bash ./r7-upload-limit-install.sh delete sudo bash ./r7-upload-limit-install.sh update
В процессе удаления будет задан вопрос «Удалять ли inject-manager.js«.
Данный менеджер нужен, если у вас установлены другие плагины, кроме этого. В таком случае следует оставить inject-manager.js.
Если это единственный установленный плагин и вы его хотите удалить полностью, тогда можно ответить на вопрос утвердительно.













