질문에 대한 답변을 요약해 보겠습니다:
- Web UI와 ENV 변수가 충돌합니까?
- 에셋은 언제 버킷에 업로드되어야 합니까?
app.yml의 hook 섹션에 이 스니펫을 추가하면, 재빌드(rebuild app) 중 after_assets_precompile 단계에서 업로드됩니다.
- 어떻게 디버깅할 수 있습니까? 로그에서 에러를 볼 수 없습니다.
다음 명령을 실행하여 확인하십시오:
cd /var/discourse
sudo ./launcher enter app
sudo -E -u discourse bundle exec rake s3:upload_assets --trace
- 설정에서 버킷의 하위 폴더를 지정할 수 있습니까?
업로드와 백업에 서로 다른 버킷을 반드시 사용해야 합니까?
아니요, 그럴 필요는 없지만 보통 가장 쉬운 설정 방법입니다. 기본적으로 두 개의 서로 다른 버킷을 사용하거나 백업 버킷에 접두사(prefix)를 사용해야 합니다. 예를 들어, 다음과 같은 조합이 작동합니다:
- 서로 다른 버킷
- s3_upload_bucket:
your-uploads-bucket- s3_backup_bucket:
your-backups-bucket
- 서로 다른 접두사
- s3_upload_bucket:
your-uploads-bucket/uploads- s3_backup_bucket:
your-uploads-bucket/backups
- 이 작업이 정상적으로 작동하게 되면, 이전에 업로드된 이미지가 버킷으로 전송됩니까? rebake를 수행하면 이전에 업로드된 이미지의 URL은 어떤 형태가 됩니까?
Discourse 인스턴스에서 S3 업로드를 활성화했습니다(이미 상당 기간 운영 중). 기존 로컬 업로드 파일은 어떻게 처리해야 합니까?
기존 업로드 파일을 S3로 마이그레이션하려면 몇 가지 rake 태스크를 실행할 수 있습니다. 이를 수행하려면 SSH 접근 권한, 루트 권한이 필요하며, discourse 앱에 진입해 있어야 합니다(관리자 일괄 작업 참고). 또한 app.yml에 몇 가지 환경 변수를 설정해야 합니다. 겁먹을 일이 아닙니다.
이 모든 준비가 끝나면 rake 태스크를 실행할 준비가 됩니다:
rake uploads:migrate_to_s3 rake posts:rebake이 작업이 완료되고(업로드가 정상적으로 작동하면) 더 이상 백업에 업로드 파일을 포함할 필요가 없습니다. 그리고 보너스로, 재앙적인 상황이 발생했을 때 명령줄에서 백업 복원이 가능해집니다(app.yml 사본을 어딘가에 보관해 두세요).