재구축 후 아바타 사진이 사라졌습니다

어제 커맨드 라인에서 다시 빌드했는데, 오늘 보니 많은 사용자의 아바타 이미지가 누락되어 있습니다(2019년에 있었던 이 주제와 유사합니다).

rake avatars:refresh를 실행해 보았지만 문제가 여전히 남아 있습니다.

2일 후에도 여전히 문제가 있나요?

@codinghorror 네, discobot도 마찬가지입니다:

기본적으로 2년 전, 제가 로컬 업로드에서 S3로 전환하기 전에 이미지를 업로드한 사용자(그라바타 미사용) 모두에게 영향을 미칩니다. 어떤 이유인지 모르겠지만, 지난 빌드 이후에만 문제가 발생했습니다.

어느 시점부터 업로드 경로가 uploads에서 uploads/default로 변경되었습니다. 다른 사이트에서 이 문제와 관련되어 약간 다른 문제를 겪고 있습니다.

데이터베이스에서 해당 깨진 업로드의 URL을 확인하면… 뭔가 더 있을 텐데. 정확히 확신은 못 하겠네요. 바르셀로나에 있었다면 좋았을 텐데.

제이, 고마워요. 점점 가까워지는 것 같네요. 아바타 URL 4개를 확인해 봤는데, 정상 작동하는 2개와 작동하지 않는 2개(파란색)의 URL이 서로 다른 도메인으로 시작한다는 걸 발견했어요:

하지만 웹사이트에서 실제로 확인되는 URL은 다릅니다:

https://MY_DOMAIN/user_avatar/MY_DOMAIN/USERNAME/75/USER_ID_2.png

.amazonaws.com 앞의 접두사를 대체해 보고 싶은데, 그게 좋은 아이디어인지(또는 어떻게 해야 하는지) 잘 모르겠어요.

관련이 있다면, S3 CDN으로 CloudFront도 함께 사용 중이라는 점도 참고해 주세요.

그 파란색 도메인은 저희 호스팅에서 사용하는 것입니다. 저희 호스팅에서 다른 곳으로 이전해 본 적이 있나요? 그렇다면 새 버킷을 반영하도록 해당 내용을 업데이트해야 합니다.

네, 그게 맞을 거예요.

그런데 정확히 어떻게, 무엇을 변경해야 할까요? 이미지가 더 이상 접근할 수 없어서 다시 업로드할 수 없거든요. 아니면 오래된 백업에서 가져와서 API를 통해 다시 업로드할 수도 있을까요?

버킷을 이동할 때는 Replace a string in all posts 에서 언급된 리맵을 실행해야 합니다.

물론 먼저 파일이 새 버킷에 있어야 합니다 :sweat_smile:. 기존 백업에 파일이 있다면, 해당 파일들을 버킷과 동기화해야 합니다.

가정적으로 말인데, :sweat_smile: 해당 S3 자산의 백업이 없다면 다른 방법이 있을까요? 찾기가 좀 어렵네요.

discourse-cloud-file-uploads가 어딘가에 버전/캐시를 유지하나요?

활성 구독 기간 동안 해당 파일을 유지하며, 구독을 취소한 후에는 며칠 동안만 보관합니다.

고맙습니다, Rafael.

  1. 이전 백업 중 하나를 복원했을 때 dump.sql 파일만 보인다면, 업로드된 파일이 포함되어 있지 않은 건가요? 기본값으로 설정되어 있으므로 업로드 포함 백업 옵션이 켜져 있었을 것 같습니다.

  2. 관리 대시보드(/admin dashboard)에서 업로드된 파일 용량이 거의 10GB인 것을 확인할 수 있습니다. 명령줄을 통해 이 파일들에 접근할 수 있는 방법이 있을까요? /var/discourse/shared/standalone/uploads/ 디렉터리를 확인해 보았지만, 용량이 11MB에 불과했습니다.

  3. 다른 곳에서 확인해 볼 수 있는 곳이 있거나, 이 파일들은 영구적으로 사라진 것으로 봐야 할까요?

사이트 설정에 업로드 포함 백업이라는 옵션이 있습니다. 이 옵션을 사용해 보시기 바랍니다.

고맙습니다, 제이.

2019년에 사용자들이 아바타를 업로드했을 때 이미 해당 설정을 활성화해 두었습니다. 그러다 2020년에 S3로 전환했는데, 지난주에 2019년에 업로드된 아바타가 전부 사라졌습니다. 기존 백업 파일들이 업로드된 파일 없이 dump.sql 파일만 있는 것 같아서, 어떻게 복구할 수 있는지 방법을 찾고 있습니다.

죄송합니다. 답변할 때 이전 대화 맥락을 놓치고 있었습니다. 대시보드가 로컬 파일이 아니라 S3 업로드를 가리키는 것 같습니다.

해당 아바타가 discourse.org의 S3 버킷에 있었다면 이미 삭제되었을 것입니다. 만약 해당 서비스에서 마이그레이션을 수행했고 계정 해지 후 백업을 받았다면, 업로드된 파일이 포함된 전체 백업을 받을 수 있습니다. 더 크거나 .tar.gz 형식의 백업 파일이 있으신가요?

discourse.org의 에셋을 참조하고 있었고, 해당 에셋이 사라진 것으로 보입니다.

제가 가진 2019년 백업 중 가장 큰 것은 59MB인데, 압축을 풀면 217MB짜리 dump.sql 파일만 나옵니다 :sweat_smile:

정말 죄송합니다. discourse.org에서 마이그레이션했지만 업로드 파일이 가져와지지 않은 것 같습니다.

배웠다. :sweat_smile: 그래도 고마워