Показать страницуИстория страницыСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Изменение лимита размера загружаемых файлов в Matrix Synapse ====== ===== Описание проблемы ===== По умолчанию Matrix Synapse устанавливает лимит загрузки файлов в 20 MB. При попытке загрузить файл большего размера появляется ошибка: **"Этот файл слишком большой для загрузки. Лимит размера файла составляет 20 MB"**. ===== Требования ===== * Docker и Docker Compose * Доступ к конфигурационным файлам Matrix Synapse * Права на редактирование файлов и перезапуск контейнеров * Nginx Proxy Manager (если используется) ===== Пошаговая инструкция ===== ==== Шаг 1: Изменить лимит в homeserver.yaml ==== Откройте файл конфигурации Synapse: <code bash> nano ./data/synapse/homeserver.yaml </code> Найдите параметр ''max_upload_size'' и измените его значение: <file yaml homeserver.yaml> max_upload_size: "200M" # Было: "20M" </file> <note tip> **Рекомендуемые значения:** * Для обычного использования: 100M - 200M * Для обмена большими файлами: 500M - 1G * Не рекомендуется ставить больше 2G </note> ==== Шаг 2: Изменить лимит в Element Web ==== Откройте конфигурацию Element Web: <code bash> nano ./data/element/config.json </code> Добавьте параметр ''max_upload_size'' в конец файла (перед закрывающей скобкой): <file json config.json> { "default_server_config": { ... }, "map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx", "max_upload_size": 209715200 } </file> <note important> **Важно!** Не забудьте добавить запятую после предыдущего параметра! Значение указывается в **байтах**: * 100 MB = 104857600 * 200 MB = 209715200 * 500 MB = 524288000 * 1 GB = 1073741824 </note> ==== Шаг 3: Настроить Nginx Proxy Manager ==== Если вы используете Nginx Proxy Manager: - Откройте **Nginx Proxy Manager** в браузере - Перейдите в **Proxy Hosts** - Найдите хост для вашего Matrix сервера (например, ''syna.digitizepro.tech'') - Перейдите на вкладку **Advanced** - Добавьте в **Custom Nginx Configuration**: <file nginx> client_max_body_size 200M; proxy_request_buffering off; </file> - Нажмите **Save** ==== Шаг 4: Перезапустить контейнеры ==== Выполните перезапуск всех контейнеров: <code bash> cd /path/to/matrix/ docker compose down docker compose up -d </code> Проверьте статус контейнеров: <code bash> docker compose ps </code> ==== Шаг 5: Очистить кеш браузера ==== <note warning> **Обязательный шаг!** Браузер кэширует настройки клиента. </note> Выберите один из вариантов: * Нажмите **Ctrl+Shift+R** (жёсткая перезагрузка) * Откройте DevTools (F12) → правой кнопкой на кнопку обновления → **Очистить кэш и жёсткая перезагрузка** * Откройте сайт в **приватном окне** браузера * Очистите весь кеш браузера: **Ctrl+Shift+Delete** ===== Проверка настроек ===== ==== Проверить конфигурацию Synapse ==== <code bash> docker compose exec synapse_app cat /data/homeserver.yaml | grep max_upload_size </code> Должно вывести: <code> max_upload_size: "200M" </code> ==== Проверить логи ==== <code bash> docker compose logs synapse_app | grep -i upload docker compose logs element_web | tail -20 </code> ===== Таблица лимитов ===== ^ Размер ^ Байты ^ Применение ^ | 50 MB | 52428800 | Минимальный комфортный лимит | | 100 MB | 104857600 | Рекомендуется для повседневного использования | | 200 MB | 209715200 | Оптимальный вариант для большинства случаев | | 500 MB | 524288000 | Для обмена большими файлами | | 1 GB | 1073741824 | Максимальный рекомендуемый лимит | ===== Возможные проблемы ===== ==== Ошибка всё ещё появляется ==== Проверьте все три места где установлен лимит: - ''homeserver.yaml'' → параметр ''max_upload_size'' - ''config.json'' (Element Web) → параметр ''max_upload_size'' - Nginx Proxy Manager → ''client_max_body_size'' ==== Недостаточно места на диске ==== Большие файлы занимают много места в ''/data/media_store''. Проверьте свободное место: <code bash> df -h du -sh ./data/synapse/media_store </code> ==== Медленная загрузка файлов ==== Проверьте: * Скорость интернет-соединения * Нагрузку на сервер * Настройки таймаутов в Nginx ===== Дополнительные рекомендации ===== <note tip> **Автоматическая очистка старых медиа** Добавьте в ''homeserver.yaml'': <file yaml> retention: enabled: true default_policy: min_lifetime: 1d max_lifetime: 30d retention_purge_jobs: - shortest_max_lifetime: 1d longest_max_lifetime: 30d interval: 12h </file> Это автоматически удалит файлы старше 30 дней. </note> ===== Ручная очистка медиа ===== Для ручной очистки файлов старше 30 дней: <code bash> docker compose exec synapse_app curl -X POST \ -H "Authorization: Bearer <admin_token>" \ "http://localhost:8008/_synapse/admin/v1/media/syna.digitizepro.tech/delete?before_ts=$(date -d '30 days ago' +%s)000" </code> <note>Замените ''<admin_token>'' на ваш токен администратора</note> ===== Ссылки ===== * [[https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html|Официальная документация Synapse]] * [[https://github.com/vector-im/element-web/blob/develop/docs/config.md|Документация Element Web]] ---- **Дата создания:** 2024-12-13 vm/matrix/02-max_upload_size.txt Последнее изменение: 2025/12/13 14:14 — admin