Итак, я проверил BunnyCDN. Могу подтвердить, что резервные копии не проходили через CDN: трафик составил 0 КБ. URL CDN хоста отличается от URL загрузки, поэтому, похоже, Discourse его не использует. Однако я могу подтвердить, что резервные копии загружаются из Discourse в Backblaze B2.
Ах, отлично, спасибо за проверку. Это подтверждает мои подозрения. Возможно, @Bill должен обновить руководство OP?
Конечно! Не уверен, как это сформулировать. Может, просто указать, что нужна только одна зона выгрузки, а CDN не имеет доступа к приватному бакету?
Я бы удалил всё от «На вашей панели управления BunnyCDN вы должны создать вторую зону вытягивания» до абзаца, заканчивающегося фразой «стандартный уровень 10$/ТБ», которую я использовал для своего бакета загрузки.
Также, похоже, что вам действительно нужна вторая зона вытягивания CDN, но не для резервного копирования. Я запутался в этом и не мог настроить загрузку на удалённый сервер, пока не правильно настроил одну зону вытягивания для отправки загрузок в BackBlaze (как вы описали) и вторую зону вытягивания для извлечения ресурсов из BackBlaze. См. мой вопрос об этом и полученный мной ответ здесь для получения дополнительной информации.
Похоже, у меня больше нет прав на редактирование оригинальной темы в Discourse — возможно, они истекли по истечении определённого времени или я редактировал её слишком много раз. Я не могу попасть в область редактирования.
Ах, хорошо. Я полагаю, вам нужно будет спросить модератора. В любом случае, даже несмотря на сбой, я благодарен за вашу инструкцию!
Первый пост теперь является вики-страницой (так было, когда я его проверял, не уверен, успел ли кто-то до меня), поэтому любой пользователь с уровнем TL1 или выше может его редактировать.
Привет! Просто хотел сообщить, что Bunny теперь также в партнёрстве с Backblaze! Теперь передача данных из Backblaze в Bunny полностью бесплатна. Так что, помимо повышенной безопасности, вы можете просто перенести данные в Bunny, не проходя через Cloudflare!
Является ли этот шаг излишним? Возможно, более правильный вопрос звучит так… насколько значительны преимущества от этого дополнительного шага, если у вас уже настроено хранилище Backblaze и CDN Bunny? Любые комментарии по этому поводу были бы для меня очень полезны. ![]()
Мне нужна помощь. Последние два дня я ушел в кроличью нору (простите за каламбур про кролика), пытаясь настроить отправку резервных копий и изображений в Backblaze.
Я использовал эту тему на форуме и другие материалы, чтобы попытаться настроить это. Теперь при создании резервных копий я постоянно получаю сообщение об ошибке (хотя загрузка файлов всё ещё не работает, но сначала нужно разобраться с резервными копиями).
Я создал бакеты в Backblaze, ключи доступа и pull-зоны.
Вот настройки в разделе «Все настройки сайта» для S3:
Вот настройки в разделе «Настройки резервного копирования»:
Вот мой файл app.yml — второй раздел, закомментированный, я возился с ним вчера, но из-за этого Discourse зависал на экране загрузки.
При запуске резервного копирования я вижу этот экран, полагаю, потому что у меня ещё не работает загрузка файлов. Возможно, это не имеет значения, но я решил добавить это.
Вот журнал ошибок резервного копирования:
А вот журнал ошибок:
Также хочу упомянуть, что я запускал задачи Rake с помощью:
rake uploads:migrate_to_s3
rake posts:rebake
У меня уже круги перед глазами после двух дней попыток заставить это работать. Не мог бы кто-нибудь помочь понять, где я ошибаюсь? Надеюсь, я предоставил всё необходимое для диагностики проблемы. ![]()
Если настройки указаны в вашем файле yml, они не будут отображаться в настройках системы.
Рекомендую следовать руководству Настройка провайдера объектного хранилища, совместимого с S3, для загрузки файлов.
Привет, спасибо за ответ. Я пробовал эту ссылку вчера, но она не сработала. Из-за неё сайт перестал загружаться.
Самое большее, чего я смог добиться, — это текущие настройки, которые у меня есть. Хотя, похоже, возникает ошибка из-за недопустимого региона, и я не уверен, какое именно настройку нужно изменить.
Это потому, что вы пропустили часть вверху, которая загружает ресурсы на S3.
Я добавил код с хуками и снова использовал конфигурацию из ссылки, которую вы опубликовали. Снова зависание.
Я снова закомментировал эту конфигурацию и вернул ту, которую использовал ранее. Я заметил, что мой параметр региона S3 содержал полный URL, поэтому я изменил его на ‘us-west-002’.
Теперь при запуске резервного копирования оно завершается ошибкой, и я получаю другое сообщение об ошибке: EXCEPTION: Unsupported header ‘x-amz-checksum-crc32’ received for this API call.
Кажется, я сдамся и просто буду вручную скачивать резервные копии каждый день.
Я продолжал пытаться заставить это работать, рискуя потерять рассудок ![]()
Последнюю ошибку контрольной суммы, которую я получил, я исправил с помощью этого решения: Can't rebuild due to AWS SDK gem bump and new AWS Data Integrity Protections - #28 by PatPatterson
Для этого я добавил следующее в секцию env в файле app.yml:
AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED
AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED
А также закомментировал следующее в секции hooks файла app.yml:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
# - sudo -E -u discourse bundle exec rake s3:expire_missing_assets
Остальные настройки env установлены следующим образом:
DISCOURSE_S3_ACCESS_KEY_ID: 'key'
DISCOURSE_S3_SECRET_ACCESS_KEY: 'key'
DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_ENABLE_S3_UPLOADS: true
DISCOURSE_S3_BACKUP_BUCKET: 'backupbucketonbackblaze'
DISCOURSE_S3_REGION: 'us-west-002'
DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
Я сделал резервную копию до включения параметра DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true.
И получил успешную резервную копию в Backblaze. УРА!!!
Когда я добавил строку в app.yml для включения загрузки файлов, резервное копирование завершилось ошибкой, которая выглядит так:
EXCEPTION: tar --append --file /var/www/discourse/public/backups/default/my-server-name-2025-04-17-222758-v20250417043438.tar uploads/default
Failed to append uploads to archive.
tar: uploads/default: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Я не понимаю, где должна находиться эта директория и как это исправить. Нужно ли создать эту директорию на сервере Discourse или в Backblaze? Или я упустил какую-то настройку в параметрах сайта или в файле app.yml?
Буду очень признателен за любую помощь.




