Discourse의 s3_region 설정을 기본값인 us-east-1에서 us-west-2로 변경한 후, 새로 업로드된 이미지는 S3에 성공적으로 업로드되었으나, Discourse가 이러한 이미지를 이전 기본값인 us-east-1 리전으로 참조하려고 시도하여 새로 업로드된 모든 이미지가 깨지는 문제가 발생했습니다.
예: 새로 업로드된 이미지의 경우…
기대값: my-bucket.s3.dualstack.us-west-2.amazonaws.com/original/1X/xyz.png
실제값: my-bucket.s3.dualstack.us-east-1.amazonaws.com/original/1X/xyz.png
우회 방법 discourse remap //my-bucket.s3.dualstack.us-east-1.amazonaws.com //my-bucket.s3.dualstack.us-west-2.amazonaws.com 명령을 실행하면 시스템이 새로 업로드된 이미지에 대해 올바른 s3_region을 사용하도록 변경됩니다(기대했던 대로 이전에 업로드된 이미지도 함께 수정됨).
이상하게도 이 문제는 간헐적으로 발생했습니다. 이전에 업로드된 이미지에 대해서는 이 방법이 작동했을 수도 있습니다. 확실하지는 않습니다.
대부분의 사용자는 이 설정을 변경할 때 어쨌든 remap을 실행할 것입니다. 제 경우처럼 새 포럼을 설정하는 중이라면, 설정을 한쪽으로 바꾸었다가 다시 다른 쪽으로 바꾸는 것만으로 모든 이미지 업로드가 깨질 수 있습니다.
어제 main 브랜치의 최신 커밋에서 이 동작을 확인했습니다: (커밋: 967946378)
관련 이슈 / 대화
나중에 이 문제를 겪게 될 분들을 위한 몇 가지 참고 사항(저를 포함하여):
저는 Digital Ocean 설치 프로그램을 통해 Discourse를 실행하고 있습니다. remap 또는 다른 discourse 스크립트를 실행하려면:
- 서버에 ssh로 접속
cd /var/discourse./launcher enter app명령을 실행하여 컨테이너 진입cd /var/www/discoursediscourse remap //my-bucket.s3.dualstack.us-east-1.amazonaws.com //my-bucket.s3.dualstack.us-west-2.amazonaws.com(여기서 다른 discourse 스크립트도 실행할 수 있음)
Bitnami 설치 환경에서 rake / discourse 스크립트를 실행하는 방법은 다음과 같습니다