Cloudflare R2: настройка и устранение ошибок конфигурации

Я не могу заставить Discourse думать, что это AWS, хотя на самом деле это Cloudflare R2, и резервные копии просто не загружаются. Я хочу использовать его только для резервных ZIP-архивов вместо AWS. Я считаю, что правильно заполнил все настройки, и мой токен доступа имеет scope «object read & write», привязанный к этому конкретному бакету. Также добавил политику CORS из темы.

[2025-09-06 13:56:44] Сжатие архива, это может занять некоторое время...
[2025-09-06 13:56:49] Загрузка архива...
[2025-09-06 13:56:49] ИСКЛЮЧЕНИЕ: Aws::S3::Errors::Forbidden
[2025-09-06 13:56:49] /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:559:in `rescue in exists?'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:554:in `exists?'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:46:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:351:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2025-09-06 13:56:49] Удаление старых резервных копий...
[2025-09-06 13:56:49] Очистка...
[2025-09-06 13:56:49] Удаление архива из локального хранилища...
[2025-09-06 13:56:49] Удаление остатков '.tar'...
[2025-09-06 13:56:49] Пометка резервной копии как завершённой...
[2025-09-06 13:56:49] Уведомление 'Firsh' об окончании резервного копирования...
[2025-09-06 13:56:54] Готово!