일부 게시글에는 업로드한 이미지가 표시되지 않고, 마우스를 올려놓았을 때 잘못된 버킷 URL/주소가 포함된 작은 아이콘이 표시됩니다. 또는, 일부 게시글은 그 작은 아이콘을 클릭해야만 올바른 이미지와 올바른 버킷 경로가 표시됩니다. 그리고 또 다른 게시글들의 이미지는 아무것도 표시되지 않고, 그저 빈 흰색 공간만 보입니다.
만약 remap 작업(remap wrongbucketurl correctbucketurl)을 실행했다면, 샘플링한 한 게시글에서 처음에는 작은 아이콘이 올바른 이미지로 대체되어 기뻤지만, 이튿날에는 그 이미지가 완전히 사라져 아이콘조차 보이지 않고 대신 흰색 공간만 나타나는 것을 발견했습니다. 그래서 저는 웹사이트를 전날 상태로 복원해야 했습니다.
이 명령어를 실행했을 때 결과는 다음과 같았습니다:
# rake posts:missing_uploads
Looking for missing uploads on: default
19 post uploads are missing.
19 uploads are missing.
6 of 7792 posts are affected.
관리 부서에서 공개 접근이 가능한 S3 버킷을 원하지 않는다고 결정했기 때문에, 이미지를 S3로 표시하는 대신 로컬로 되돌려야 합니다.
처음에는 깨진 링크를 검사하여 리맵(remap)에 사용할 값을 파악했고(그렇게 생각했는데), 이제 일부 이미지는 정상적으로 표시됩니다. 하지만 대부분, 90% 이상은 작동하지 않습니다. S3 링크가 깨져 있을 때는 적어도 링크를 검사해서 무엇이 잘못되었는지 파악할 수 있었는데, 지금은 다음 내용만 표시됩니다:
이 이미지들이 실패하는 원인이 무엇인지 아는 분이 있을까요? 며칠째 이 문제로 고생하고 있습니다. a) 되돌려 올 수 있는 방법이 없다는 것과, b) 되돌려 올 수 없는 상황에서 누군가(저는 아닙니다) 우리를 이주(migrate)시켰다는 사실이 정말 믿기지가 않습니다.
정리하자면, @nathank 님이 설명한 과정을 따랐습니다. 리맵 단계의 경로가 보편적인지, 아니면 디렉터리 구조에 따라 달라지는지(우리의 디렉터리에는 S3 동기화 단계를 통해 성공적으로 복사된 여러 하위 디렉터리가 있습니다) 명확하지 않아서, 경로를 살짝씩 바꿔가며 여러 번 시도해 보았습니다.
원하시는 작업은 숨겨진 include_s3_uploads_in_backups 옵션을 활성화한 뒤 백업을 생성하고 이를 복원하는 것인 것 같습니다(저라면 먼저 새로운 테스트 서버에서 시도하겠습니다). 이는 CDCK 고객이 구독을 해지할 때 수행되는 절차이며, 이렇게 생성된 백업은 새 셀프호스트드 사이트로 문제없이 복원됩니다.
이것을 언급해도 될 것 같습니다. 이전 게시글 이후에, 우리 토픽 중 여섯 개의 게시글에서 이미지가 여전히 깨져 있다는 사실을 깨달았습니다(대부분은 이제 정상적으로 보입니다).
해당 게시글들은 우리에서 가장 오래된 여섯 개이고, 모든 원본 이미지가 다른 모든 이미지와 다른 S3 URL을 사용하고 있었습니다. 분명히 우연이 아닙니다. 그래서 uploads/default/original/1X 디렉토리에 해당 파일들이 모두 있는지 확인했는데, 실제로 모두 있었습니다. 그런 다음 이 고유한 S3 URL을 사용하여 remap 명령을 실행했는데, 올바른 수의 게시글이 수정된 것처럼 보였습니다. 그 후 다시 베이킹하고 컨테이너를 다시 빌드했지만, 이 토픽들은 여전히 깨져 있습니다. 왜 소수의 게시글만 이런 방식으로 실패하는지 아시는 분 계신가요?