일부 링크된 이미지가 표시되지 않거나 깨진 상태로 보임

API를 통해 약 15,000개의 뉴스 기사를 Discourse로 마이그레이팅하고 있습니다. 이 토픽들은 이미지 링크를 포함하고 있습니다. 이미지는 blob storage에 업로드되어 있으며, 공개적으로 완전히 접근 가능합니다.

대부분의 토픽에서는 이미지가 정상적으로 표시되고, 예상대로 핫링크 다운로드 후 Discourse에 업로드됩니다. 그러나 일부는 토픽에서 링크로만 표시되는 수준을 넘지 못하거나, 이유 없이 깨진 이미지로 표시되기도 합니다.

예를 들어,

링크로만 유지되는 경우:

깨진 경우:

깨진 경우, 편집 시 토픽은 다음과 같이 표시됩니다:

설정은 다음과 같습니다:
마이그레이션 테스트를 위해 새로 설치한 Discourse
이미지용 S3 스토리지

일반 사용자로 게시물을 생성하고 이미지를 업로드하는 데는 문제가 없었습니다. 이 문제는 API를 통해 게시물을 마이그레이팅할 때, 즉 대량으로 빠르게 처리할 때(skip_validations=true 파라미터 사용)만 발생하는 것으로 보입니다. 지금까지는 최대 1,000개의 토픽을 마이그레이팅한 후 초기화하고 다시 시작했습니다.

이러한 문제를 일으키는 원인에 대한 아이디어나 진단 방법에 대한 팁이 있을까요? 모든 Hotlink Sidekiq 작업은 예상대로 스케줄링되고 실행되는 것으로 보입니다.

rake posts:rebake는 도움이 되지 않습니다

조금 작은 관리자 wrench가 있는 재구성된 HTML 옵션은 어떨까요?

image

파일의 확장자가 이중으로 붙어 있습니다 - .jpeg.jpg - 거부된 모든 파일이 이렇습니까?

이중 확장자 파일 중 성공적으로 처리된 것이 있습니까?

로버트, 감사합니다. 처음 몇 개를 시도해 본 결과 잘 작동합니다. 처음부터 다시 시작하는 방식인데, 즉 핫링크된 이미지를 렌더링한 다음 다운로드/업로드하는 방식입니다.

자동화할 수 있는지 확인해 봐야겠지만, 애초에 왜 실패하는지에 대한 근본적인 원인은 해결하지 못합니다.

아니요, 이중 확장자 이미지는 소수이며 모든 실패 사례를 차지하지는 않습니다. 그래도 HTML 재구축 옵션은 이러한 경우에도 문제를 해결합니다.

정말 대단하시네요, 축하드립니다! :partying_face: 저도 비슷한 문제를 겪었을 때 여기 다른 분들로부터 도움을 받아서 알게 되었거든요. 그걸 당신에게도 전할 수 있어서 기쁩니다. :sunglasses:

음, /posts/{num}/rebake를 사용하여 API를 통해 모든 마이그레이션된 게시물을 수정했습니다. 이상하게도 컨테이너에서 rake posts:rebake 명령은 작동하지 않았습니다.

rebake API 호출을 자동화한 결과, 이미지 업로드 실패율이 약 80%인 것으로 드러났습니다. 정말 믿기 어려운 수치입니다.

결국 이 방법은 신뢰할 수 없었습니다. 일부 게시물에서는 작동했지만 모든 게시물에서는 그렇지 않았습니다. 이미지를 다시 업로드하는 작업을 다시 시도해야 할 것 같습니다. 이전에 요청이 단순히 멈춰버리는 문제가 있었는데, 당시 skip_validations 파라미터를 해당 요청에 적용해 보았는지는 확실하지 않습니다.

깨진 이미지를 수정하는 데 도움이 될 수 있는 몇 가지 제안이 이 게시물에 있습니다: Rebake with rails command or rake task doesn't work, but rebuilding HTML does. Why? - #12 by RGJ.