멀티사이트 환경에서, 제 이해가 맞다면 이미 수행 중인 작업은 R2를 사용하는 단일 인스턴스만 필요한 상황입니다. 설정이 관리자 설정에 있는 경우, 이를 위해 USE_DB_S3_CONFIG=true와 RAILS_DB=default를 함께 사용해야 하며, 이렇게 하면 완벽하게 작동할 것입니다.
hooks:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse RAILS_DB=default USE_DB_S3_CONFIG=true bundle exec rake s3:upload_assets
- sudo -E -u discourse RAILS_DB=default USE_DB_S3_CONFIG=true bundle exec rake s3:expire_missing_assets
업로드 파일 마이그레이션의 경우, 아래처럼 해당 변수들을 한꺼번에 또는 하나씩 내보내야 합니다.
RAILS_DB=default \
DISCOURSE_S3_REGION=auto \
DISCOURSE_S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com \
DISCOURSE_S3_BUCKET=discourse-files \
DISCOURSE_S3_ACCESS_KEY_ID=<your-access-key> \
DISCOURSE_S3_SECRET_ACCESS_KEY=<your-secret-key> \
rake uploads:migrate_to_s3
app.yml에 이를 포함할 계획이라면, 업로드용 S3 호환 객체 스토리지 제공자 구성 문서의 R2 섹션에 오타가 있으므로 DISCOURSE_S3_BUCKET을 반드시 사용해야 합니다.