Да. Если резервные копии хранятся в S3 и вы больше не хотите оставлять их на локальном диске, вы можете удалить их.
Могу ли я включить S3 только для резервного копирования, но не для загрузки файлов или изображений?
У меня был точно такой же вопрос, и я не смог найти явного ответа ни здесь, ни на странице Configure an S3 compatible object storage provider for uploads.
Однако я настроил Scaleway S3 Object Storage только для резервных копий с использованием следующих переменных окружения, и всё работает. Я вручную создал резервную копию в бакет таким образом через панель администратора.
# Оставил параметры ниже закомментированными,
# так как они настраивают S3 для загрузки файлов и распределения через CDN, что нам не нужно.
# DISCOURSE_USE_S3: true
# DISCOURSE_S3_CDN_URL:
# DISCOURSE_S3_BUCKET:
DISCOURSE_S3_REGION: nl-ams
DISCOURSE_S3_ENDPOINT: https://s3.nl-ams.scw.cloud
DISCOURSE_S3_ACCESS_KEY_ID: <redacted>
DISCOURSE_S3_SECRET_ACCESS_KEY: <redacted>
DISCOURSE_S3_BACKUP_BUCKET: <redacted>
DISCOURSE_BACKUP_LOCATION: s3
Статические ресурсы, как и ожидалось, по-прежнему обслуживаются с моего VPS, и я не вижу никаких ошибок. Не уверен, сработают ли запланированные резервные копии, но если ручная резервная копия сработала, то и они должны сработать.
Добавлю примечание в вики выше, что эти параметры можно не указывать, если вы хотите использовать S3 только для резервных копий, а не для загрузки файлов или изображений.
Обновление: это не вики.
Обновление 2: по моей просьбе это сделали вики, спасибо!
Если у меня есть два избыточных веб-контейнера, как обеспечить запуск резервного копирования только на одном из них?
Вам не нужно ничего делать — Discourse обрабатывает это автоматически: Sidekiq и Redis запустят задачу только один раз, и Sidekiq выберет только один из веб-контейнеров. Однако, если вы используете локальные резервные копии, вы не сможете точно знать, на каком именно контейнере она будет выполнена в конкретный момент.
Поэтому, если вы еще этого не сделали, используйте внешний бакет S3. В противном случае ваши файлы резервных копий, скорее всего, будут случайно распределяться по локальным дискам обоих контейнеров. Использование бакета S3 гарантирует, что резервная копия всегда будет сохраняться в одном и том же месте.