Могу ли я увеличить лимит вложения 1024000 КБ?

Я использую S3 для хранения вложений, что позволяет работать с объемом до 160 ГБ.
Я установил лимит nginx в 0 (без ограничений).
Параметр «upload_size» в app.yml также установлен в 0.

Мы не загружаем файлы напрямую в S3; сначала они попадают на ваш сервер, а затем сервер отправляет их в S3. Это означает, что вам не стоит устанавливать лимит больше, чем доступное свободное место на диске.

Хорошо, я хочу установить лимит на 10 ГБ, у меня достаточно места на диске. Но как можно изменить лимит в Discourse?

Вы можете переопределить максимум с помощью пользовательского плагина. В качестве примера можно использовать этот:

Спасибо, я могу подтвердить, что ограничение исчезло при использовании этого плагина и настроек:

files:
  max_attachment_size_kb:
    client: true
    default: 1024000
    max: 6144000

Однако у меня есть две проблемы:

  1. Загрузка файла размером 2 ГБ проходит успешно до 100%, а затем завершается ошибкой в общем всплывающем окне.
  2. Каждый раз, когда я пытаюсь это сделать, размер Docker-контейнера Discourse увеличивается на 2 ГБ и не очищается!! У меня почти закончилось место… как это можно очистить?

Вам будет лучше использовать подходящий облачный сервис для хранения файлов по вашему выбору и добавлять ссылки на файлы в темы Discourse. Discourse не предназначен для хранения больших объёмов файлов.

Я использую облачное хранилище S3. На самом Discourse ничего храниться не должно.

Я имею в виду не это — я имею в виду облачный сервис для хранения файлов, ориентированный на обычных пользователей, например Google Drive, OneDrive, Dropbox и т. д.

Независимо от способа реализации, Discourse не предназначен для работы с большими файлами.

Независимо от того, где в конечном итоге окажется файл, Discourse не предназначен для использования в качестве громоздкого механизма загрузки файлов.

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

Чудо открытого исходного кода заключается в том, что вы свободны экспериментировать.

Точно так же, если что-то не поддерживается, нет никаких гарантий, что будущие изменения в Discourse не сделают настройки, которые вы вносите сегодня, полностью неработоспособными в будущем.

Я рассматриваю возможность разрешения загрузки больших файлов (они могут достигать 50 МБ, и возможно, что через API будут осуществляться пакетные загрузки) на своём сайте. Просто пытаюсь понять суть опасений. Если S3 настроен для обработки загрузки и хранения больших файлов, а форум Discourse предоставляет ссылки на эти файлы, чтобы пользователи могли их скачать, сможет ли кто-то подробнее рассказать, где именно, по вашему мнению, могут возникнуть проблемы в работе Discourse?

Текущий компонент загрузки просто не предназначен для загрузки больших файлов (загрузка резервных копий в административном интерфейсе поддерживается).

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

Спасибо за эту информацию, @sam. Раньше я не был знаком с тем, как хранятся загружаемые файлы. Похоже, что по умолчанию файлы загружаются на тот же сервер, на котором работает Discourse. В таком случае я понимаю, почему большие загрузки могут стать проблемой. И я понимаю, что вы работаете над поддержкой прямой загрузки в S3 в будущем.

А что, если сейчас настроить отправку загружаемых файлов в S3, как описано здесь?

Даст ли это сейчас те же преимущества, что и планируемая вами автоматическая функция в будущем, и позволит ли Discourse поддерживать загрузку и скачивание больших файлов?

Наша текущая система загрузки работает по схеме: userdiscourse servers3.

Новая система, которую мы внедряем через несколько недель, будет работать по схеме: users3.

Смогут ли сайты плавно перейти на новую систему загрузки — чтобы загрузки по старой системе продолжали работать, а затем заработали и загрузки по новой?

Я предполагаю, что да, учитывая, что все будет храниться в S3, но хотел бы это подтвердить. Спасибо.

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

Для уточнения: я ожидаю, что пользователи вообще не заметят никаких изменений — разве что (возможно?) их файлы будут загружаться и скачиваться быстрее, и это позволит загружать файлы большего размера, если администраторы этого захотят. Так ли это?

Скорее всего, загрузка файлов будет быстрее. Скачивание, вероятно, останется без изменений (так как функция затронет только загрузку).

Думаю, что да, но официальное заявление по этому поводу должен сделать команда Discourse.