도메인 변경 및 포스트 리베이킹 후 모든 이미지가 깨졌습니다
현재 포스트에는 이 문제가 없으며, 기존 포스트에만 나타납니다.
S3를 사용 중입니다.
Change the domain name or rename your Discourse 를 따랐나요?
S3 설정에 대해 무언가를 변경했나요? 도메인 이름도 변경되었나요? 그것은 또 다른 문제입니다.
그렇다면 데이터베이스를 다시 매핑하여 업로드된 파일에 새로운 URL이 포함되도록 해야 합니다.
새로운 업로드는 정상적으로 작동합니까?
네, 모든 새 업로드가 정상적으로 작동합니다.
기존에 존재하던 첨부파일의 경우에만 문제가 발생합니다.
데이터베이스 덤프 SQL도 확인해 보았습니다.
uploads 테이블은 여전히 다음 값을 사용하고 있습니다:
//com-ossez-www-discourse.s3.dualstack.us-east-2.amazonaws.com/discourse-uploads/original/2X/e/e7ace3e99f6d7dd9520bebfe4f2de91898a05849.png
이는 버킷 이름을 변경했기 때문입니다.
이 값은 다음과 같이 되어야 합니다:
//com-isharkfly-www-discourse.s3.dualstack.us-east-2.amazonaws.com/discourse-uploads/original/2X/e/e7ace3e99f6d7dd9520bebfe4f2de91898a05849.png
원인을 찾았고 웹사이트에서 모든 문제를 수정했습니다.
중국어 버전의 단계는 수정 로그를 참조해 주세요: 不是很严重,但是也有点严重的问题 —— 附件无法显示 - Discourse - iSharkFly
주된 원인은 업로드 테이블이었습니다.
이 테이블의 행이 왜 잘못되었는지 정확히 알 수 없으나, 이 테이블의 약 60%에 해당하는 데이터가 손실되어 있었습니다. 로컬 백업을 사용하여 데이터를 SQL로 변환한 후 프로덕션 환경에서 실행하여 손실된 데이터를 모두 삽입해야 했습니다.
이후 게시물을 다시 생성(rebake)하면 모든 문제가 해결됩니다.
이 문제는 소스 코드의 문제가 아니며, base62 인코딩/디코딩은 그 역할을 정상적으로 수행했습니다.
감사합니다. 팀.
CC: @pfaffman