안녕하세요. 최근 Discourse EC2에서 Discourse ECS(컨테이너 서비스)로 이전했습니다. EC2를 사용하던 당시에는 S3 업로드가 아직 설정되어 있지 않았습니다. 이전을 수행하기 전에 모든 이미지를 EC2에서 S3 버킷(공개 액세스 허용)으로 복사했습니다. 그러나 S3 업로드를 활성화한 상태로(아직 CDN은 없음) 이전을 마친 후, 이미지(및 아바타)가 전혀 로드되지 않는 것을 발견했습니다.
app.yml에는 다음과 같은 내용이 있습니다:
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-east-1
DISCOURSE_S3_ACCESS_KEY_ID: aws_access_key
DISCOURSE_S3_SECRET_ACCESS_KEY: aws_secret_key
DISCOURSE_S3_BUCKET: <uploads-bucket>
DISCOURSE_S3_BACKUP_BUCKET: <backups-bucket>
DISCOURSE_BACKUP_LOCATION: s3
hooks:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
컨테이너에서 다음 명령을 실행해도 문제가 해결되지 않았습니다:
rake posts:rebake
rake posts:missing_uploads
rake avatars:refresh
또한 이미지 URL의 차이점(Discourse가 여전히 EC2의 “로컬 업로드” URL을 사용하고 있음)도 발견했습니다.
S3의 링크: https://[s3-bucket].s3.amazonaws.com/original/1X/831092e27d6c066c3618a587a5c378e1c794f2c6.png
Discourse의 링크(여전히 EC2 업로드 URL): https://[domain]/uploads/default/original/1X/831092e27d6c066c3618a587a5c378e1c794f2c6.png
브라우저에서 발생하는 오류: 404 NOT FOUND
Discourse가 이미지에 대해 올바른 S3 URL을 사용하도록 설정하는 방법은 무엇인가요?
