Я не могу получить доступ к сайту после настройки учетных данных S3 для резервного копирования. Я ничего не менял, кроме этого.
Вы можете посмотреть в /var/discourse/shared/log/rails/production.log (или что-то подобное) и увидеть ошибку.
Возможно, вам нужно
cd /var/discourse
./launcher enter app
rails c
# а затем что-то вроде
SiteSetting.backup_location='local'
Но это может быть совпадением: резервные копии S3 не имеют к этому отношения, и у вас просто переполнен диск.
Спасибо. Я пытался, но не смог исправить ошибку. Ниже приведён журнал ошибок.
ActionView::Template::Error (s3_upload_bucket)
/var/www/discourse/lib/file_store/s3_store.rb:153:in `s3_bucket'
Started HEAD "/" for 35.111.111.163 at 2020-03-05 06:34:08 +0000
Processing by ListController#latest as HTML
Rendering list/list.erb within layouts/application
Rendered list/list.erb within layouts/application (Duration: 6.1ms | Allocations: 2278)
Rendered layouts/_head.html.erb (Duration: 0.2ms | Allocations: 102)
Rendered common/_google_universal_analytics.html.erb (Duration: 0.2ms | Allocations: 79)
Rendered common/_discourse_stylesheet.html.erb (Duration: 0.4ms | Allocations: 200)
Completed 500 Internal Server Error in 60ms (ActiveRecord: 0.0ms | Allocations: 17538)
ActionView::Template::Error (s3_upload_bucket)
/var/www/discourse/lib/file_store/s3_store.rb:153:in `s3_bucket'
Свободно 5 ГБ места.
Я бы отключил настройки S3 из консоли Rails. Выше я привел пример. Возможно, вам стоит поискать здесь ещё несколько примеров.
Вы не установили параметр s3_upload_bucket.
Просто выполните:
cd /var/discourse
./launcher enter app
rails c
SiteSetting.s3_upload_bucket = 'thenameofyourbucket'
где вы замените последнюю строку, указав фактическое имя вашего S3-бакета.
Спасибо. Это решило проблему. Но почему это произошло? Потому что я хотел использовать S3 только для резервных копий, поэтому не указал ни один бакет для загрузок. Это нормально или это ошибка?
Я могу воспроизвести эту проблему только при включении enable_s3_uploads.
Вот что, по моему мнению, произошло и привело к экрану «Oops»:
- вы добавили
s3 access key idиs3 secret access key; - вы настроили
s3_upload_bucket; - вы включили
enable_s3_uploads; - вы установили
backup_locationв значение s3; - вам пришлось задать
s3_backup_bucket, и вы установили его в тот же бакет; - это привело к ошибке: Нельзя использовать один и тот же бакет для ‘s3_upload_bucket’ и ‘s3_backup_bucket’. Выберите другой бакет или укажите другой путь для каждого бакета.;
- вы очистили
s3_upload_bucket, чтобы использоватьs3_backup_bucket; - вы не отключили
enable_s3_uploads.
Ошибка заключается в том, что включение enable_s3_uploads требует наличия s3_upload_bucket, но очистка этого параметра при всё ещё включённых загрузках в S3 приводит к сбою форума.
Что-нибудь можно сделать, чтобы исправить это, @eviltrout?
Уже существует валидация, предотвращающая это:
Однако она не покрывает случай, когда вы очищаете бакет, но оставляете загрузки включёнными.
Этого должно быть достаточно:
