# Включите скрытую настройку для включения загрузки S3 в резервные копии

**URL:** https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535
**Category:** Self-Hosting
**Tags:** backups, how-to
**Created:** [25.Август.2023 00:32:02 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535 "2023-08-25T00:32:02Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [25.Август.2023 00:32:02 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/1 "2023-08-25T00:32:02Z")

</div>

> 🔖 Это руководство объясняет, как включить скрытую настройку в Discourse для включения загрузок Amazon S3 (Simple Storage Service) в ваши резервные копии.

Discourse позволяет хранить медиа-загрузки на Amazon S3 для обеспечения масштабируемости и надежности. Однако по умолчанию эти загрузки не включаются в резервные копии.

В этом руководстве описывается включение скрытой настройки для добавления загрузок S3 в резервные копии, с вариантами конфигурации через консоль Rails или файл `app.yml`.

### Использование консоли Rails

Чтобы включить загрузку S3 в резервные копии через консоль Rails, выполните следующие шаги:

1. Подключитесь к вашему серверу Discourse через SSH.
2. Войдите в контейнер Docker Discourse, выполнив:

```rb
cd /var/discourse
./launcher enter app

```

1. Запустите консоль Rails:

```rb
rails c

```

1. Включите настройку, выполнив:

```rb
SiteSetting.include_s3_uploads_in_backups = true

```

1. Выйдите из консоли и контейнера, введя:

```plaintext
exit
exit

```

Это изменение вступает в силу немедленно. Никаких дополнительных действий не требуется.

### Изменение файла app.yml

Вы также можете внести это изменение, добавив настройку в секцию `env:` файла `app.yml`.

1. Перейдите в директорию контейнера приложения Discourse:

```plaintext
cd /var/discourse

```

1. Откройте файл `app.yml`, расположенный в `containers`:

```plaintext
nano containers/app.yml

```

1. В секции `env:` добавьте строку:

```plaintext
DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true

```

1. Сохраните файл и выйдите из редактора.
2. Примените изменения, пересобрав приложение:

```plaintext
./launcher rebuild app

```

Чтобы изменение вступило в силу, необходимо выполнить команду `./launcher rebuild app` для применения настройки.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [25.Август.2023 00:57:14 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/2 "2023-08-25T00:57:14Z")

</div>

> [@Vinoth Kannan](#):
>
> Чтобы это изменение вступило в силу, необходимо выполнить команду `./launcher rebuild app` для применения соответствующей настройки.

Разве не достаточно уничтожить и перезапустить контейнер?

---

<div class="post-metadata">

### Author: ![vinothkannans](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/vinothkannans/32/86465_2.png) [@vinothkannans](https://meta.discourse.org/u/vinothkannans)
#### Post date: [25.Август.2023 01:01:55 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/3 "2023-08-25T01:01:55Z")

</div>

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

В любом случае, спасибо @pfaffman за ваш другой #howto [гайд](https://meta.discourse.org/t/enable-setting-to-allow-admins-to-permanently-delete-data/206678), который я использовал в качестве шаблона для этого.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [25.Август.2023 01:12:48 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/4 "2023-08-25T01:12:48Z")

</div>

> [@Винод Каннан](#):
>
> Я думаю, что уничтожать не нужно, достаточно перезапуска

Я уверен, что нужно уничтожить и запустить заново, чтобы применить переменные окружения к контейнеру.

Конечно, если они выполняли обновления через Docker Manager, эти изменения будут утеряны при уничтожении контейнера, поэтому пересборка — наиболее безопасная рекомендация. Возможно, лучше рекомендовать пересборку, так как это самый надёжный способ.

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [16.Август.2024 14:15:19 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/9 "2024-08-16T14:15:19Z")

</div>

Почему бы не использовать [эту настройку](https://bathindahelper.com/admin/site_settings/category/backups), чтобы включить все загрузки в резервную копию:  
 ![image](https://global.discourse-cdn.com/meta/original/4X/5/2/4/5247782818ab862904a1f1893cbb136d130ddd14.png)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [16.Август.2024 14:18:58 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/10 "2024-08-16T14:18:58Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [16.Август.2024 14:24:39 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/11 "2024-08-16T14:24:39Z")

</div>

Хорошо. Я не знал.  
Но в чём разница между «Локальными загрузками» и папкой «Файлы, хранящиеся в S3 ‘Uploads’»?

Также, хотя я ещё не менял настройки в web\_only или в консоли rails, как было указано выше, я пока выбрал только одну настройку, о которой говорится [здесь](https://bathindahelper.com/admin/site_settings/category/backups).

Тем не менее, когда я запустил резервное копирование всего 10 минут назад, оно показало, что загружаются тысячи файлов (что, как я полагаю, возможно только для моего хранилища AWS S3, и само слово «Загрузка» подразумевает скачивание из удалённой папки S3).  
Также отображается сообщение «Не удалось загрузить» для множества файлов. Стольких файлов. Я предположил, что если бы эти файлы находились на локальном облачном сервере, почему бы системе не включить их в резервную копию? Посмотрите на этот скриншот:

 ![image](https://global.discourse-cdn.com/meta/original/4X/c/f/5/cf54f9bad8c80aaa47e3edf229c16a1e251d1bbe.png)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [16.Август.2024 14:44:51 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/12 "2024-08-16T14:44:51Z")

</div>

> [@Bathinda Helper](#):
>
> Но в чём разница между «Локальными загрузками» и папкой «Файлы, хранящиеся в S3 «Загрузки»»?

Если вы настроили [конфигурацию провайдера объектного хранилища, совместимого с S3, для загрузок](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916) и перенесли свои локальные загрузки в S3, то ваши файлы находятся там. Они не резервируются, так как предполагается, что S3 уже имеет резервное копирование, а их скачивание дорого и обычно излишне.

Если вам нужно извлечь их из S3 (например, если вы размещены на [discourse.org](http://discourse.org) и переходите на другую платформу), вам потребуется резервная копия, включающая файлы, хранящиеся в S3.

Почему вы хотите скачать свои файлы из S3?

> [@Bathinda Helper](#):
>
> Оно показывает «Не удалось скачать» для многих, очень многих файлов. S

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

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [16.Август.2024 14:54:48 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/13 "2024-08-16T14:54:48Z")

</div>

Спасибо. Ещё раз.

> [@Jay Pfaffman](#):
>
> Почему вы хотите загрузить свои файлы из S3?

Поскольку мой сайт очень-очень маленький, платить несколько долларов, которые с каждым месяцем растут из-за небольших обновлений, за хранение в AWS S3 каждый месяц становится для меня немного неудобно. Я планирую перенести папку «Uploads» (и, возможно, также папку «backup») на другого провайдера, например Google One Drive, iDrive, Hetzner или другие недорогие альтернативы.  
Теперь я понимаю, что даже различные типы хранилищ AWS (от самых активных до архивных), если бы я выбрал их разумно в начале, обошлись бы мне вдвое дешевле за то же количество файлов.

Но я сделаю это сейчас.

---

<div class="post-metadata">

### Author: ![Bathinda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bathinda/32/135888_2.png) [@Bathinda](https://meta.discourse.org/u/Bathinda)
#### Post date: [17.Август.2024 06:18:17 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/14 "2024-08-17T06:18:17Z")

</div>

> [@pfaffman](#):
>
> Да, похоже, что загрузка файлов из S3 не удаётся.

Когда несколько лет назад я решил хранить свои медиа-«загрузки» в бакете AWS S3, в то время (насколько я помню) ВСЕ существующие медиафайлы, загруженные пользователями, тоже были перемещены в S3.

Кроме того, я только что проверил папку /var/discourse/shared/web\_only/uploads/default/optimized/1X — в ней всего 63 файла PNG, а в /var/discourse/shared/web\_only/uploads/default/original/1X — всего 3. (За исключением папки 1X, других подобных папок в директориях «uploads» или «default» нет.)

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/c/9/3c940e5bd73a0d0020752ec636a67a1c61ef7c6c.png)

Также я пока не менял никаких настроек в консоли Rails или в YAML-файле, чтобы включить загрузку из S3 в мои резервные копии. Так почему же система показывает, что она загрузила столько «медиа-загрузок» ИЗ S3!!!  
И почему не удалось загрузить так много загруженных файлов? [Скриншот здесь](https://global.discourse-cdn.com/meta/original/4X/c/f/5/cf54f9bad8c80aaa47e3edf229c16a1e251d1bbe.png).

Более того, моя папка загрузок в S3 занимает около 3 ГБ (32 тысячи файлов), тогда как в логах резервного копирования указано, что было загружено только около 3,2 тысячи файлов (10% от общего числа).

Очень запутанно.

> Есть ли какая-то ДРУГАЯ команда Rails, чтобы дважды убедиться, что эта опция не была включена много лет назад, когда я перешёл на AWS S3?

Любое пояснение будет полезным.

---

<div class="post-metadata">

### Author: ![hipp0](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hipp0/32/537433_2.png) [@hipp0](https://meta.discourse.org/u/hipp0)
#### Post date: [12.Январь.2026 10:18:53 UTC](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535/15 "2026-01-12T10:18:53Z")

</div>

Нужно ли включать загрузки, если у вас есть два отдельных хранилища: одно для резервных копий и другое для загрузок?
