Как перенести мои резервные копии из Amazon S3 в Wasabi?

В настоящее время мы используем Amazon S3 для создания ежедневных резервных копий из Discourse и храним их в течение нескольких дней.

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

Однако Amazon S3 не так уж и дешев. Я хотел бы перейти с Amazon S3 на Wasabi, который дешевле для наших нужд.

Я прочитал этот пост Использование объектного хранилища для загрузок (S3 и аналоги) - howto / администраторы - Discourse Meta и этот другой (специфичный для Wasabi) Discourse + Wasabi (совместимое с S3 хранилище) - поддержка - Discourse Meta.

Но для меня неясно, как это сделать.

В первом посте говорится об изменении некоторых строк (добавлении их) в app.yml.
Однако, похоже, это необходимо для активации хранения изображений и загрузок в сервисе S3, а не для резервных копий.

Там упоминаются некоторые специфичные для сервиса переменные окружения для изменения CDN и службы хранения.
Но для меня неясно, где именно нужно хранить эти переменные окружения.

Есть ли какой-либо конфигурационный файл, куда мне следует поместить эти переменные перед запуском launcher?

Спасибо за ответы.

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

Вам не важен CDN или что-то в этом роде.

У меня были проблемы с Wasabi, и я перестал его использовать. DigitalOcean Spaces стоит недорого.

Спасибо.
Я учту это и попробую использовать Wasabi какое-то время, чтобы проверить, возникнут ли проблемы.

Я не знал, что в разделе env файла app.yml можно создавать столько переменных окружения, сколько нужно. :relaxed:

Мне нужно перенести данные в новый бакет, потому что я храню там старые резервные копии, и Amazon продолжит взимать плату за них, пока я их не удалю. В Wasabi дополнительных расходов нет до 1 ТБ данных.

Я отредактировал файл и добавил следующие строки:

  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: eu-central-1
  DISCOURSE_S3_ENDPOINT: https://s3.eu-central-1.wasabisys.com
  DISCOURSE_S3_ACCESS_KEY_ID: {access key}
  DISCOURSE_S3_SECRET_ACCESS_KEY: {secret key }
  DISCOURSE_S3_BACKUP_BUCKET: {backup bucket name}
  DISCOURSE_BACKUP_LOCATION: s3

Всё работает, теперь резервные копии сохраняются в Wasabi.
Если вы используете другой регион, не забудьте изменить его также в названии конечной точки.

Хорошая сторона того, что эти настройки прописаны в app.yml, заключается в том, что для восстановления вашего сайта на новом сервере достаточно только этого файла; после этого вы можете установить свежую версию Discourse и выполнить:

./launcher enter app
discourse enable_restore
discourse restore

а затем скопировать и вставить резервную копию, которую нужно восстановить.

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