백업용 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'
공백 공간이 5GB 있습니다.
rails 콘솔에서 S3 설정을 비활성화하겠습니다. 위에서 예시를 하나 보여드렸는데, 더 많은 예시를 여기에서 검색해 보실 수 있습니다.
s3_upload_bucket 매개변수를 설정하지 않았습니다.
아래와 같이 실행하세요.
cd /var/discourse
./launcher enter app
rails c
SiteSetting.s3_upload_bucket = 'thenameofyourbucket'
마지막 줄을 수정하여 실제 S3 버킷 이름을 입력하면 됩니다.
감사합니다. 그 방법으로 문제가 해결되었습니다. 그런데 왜 이런 일이 발생했을까요? 저는 S3를 백업 용도로만 사용하려고 했기 때문에 uploads에 버킷을 입력하지 않았습니다. 이게 정상적인 동작인가요, 아니면 버그인가요?
enable_s3_uploads를 활성화할 때만 이 문제를 재현할 수 있습니다.
아래와 같은 상황이 발생하면 Oops 화면이 표시되는 것으로 보입니다:
s3 access key id와s3 secret access key를 추가했습니다.s3_upload_bucket을 구성했습니다.enable_3s_uploads를 활성화했습니다.backup_location을 s3로 설정했습니다.s3_backup_bucket을 설정해야 했고, 동일한 버킷으로 설정했습니다.- **'s3_upload_bucket’과 's3_backup_bucket’에 동일한 버킷을 사용할 수 없습니다. 다른 버킷을 선택하거나 각 버킷에 다른 경로를 사용하세요.**라는 오류 메시지가 표시됩니다.
s3_backup_bucket을 사용할 수 있도록s3_upload_bucket을 비웠습니다.enable_s3_uploads를 비활성화하지 않았습니다.
버그의 원인은 enabling_s3_uploads가 s3_upload_bucket을 요구하는데, s3 업로드가 여전히 활성화된 상태에서 해당 설정을 비우면 포럼이 충돌하기 때문입니다.
위 문제를 해결할 수 있는 방법이 있을까요 @eviltrout?
이미 이를 방지하기 위한 유효성 검사가 존재합니다:
하지만 업로드가 활성화된 상태에서 버킷을 비우는 경우를 다루지 않습니다.
이렇게 하면 됩니다:
