Imgur 이미지 내장 안 됨 (429 오류)

이 메시지가 뜨는데, 이게 뭔지 아시는 분 계신가요?

429 오류는 discourse 서버가 해당 사이트에서 제공하고자 하는 이미지 수를 초과하여 가져왔음을 의미합니다.

그게 무슨 뜻인가요? 문제를 어떻게 해결할 수 있나요?

이는 imgur가 아닌 다른 곳에서 이미지를 업로드해야 함을 의미합니다. 서버가 파일을 다운로드하는 것을 거부하고 있습니다.

예를 들어, imgur 링크를 사용하는 대신 이미지를 discourse에 직접 업로드할 수 있습니다.

그래서 이게 서버 문제인가요? 다른 디스코 기반 포럼에서는 imgur가 보통 링크로 임베드되거든요.

서버가 imgur에서 너무 많은 이미지를 다운로드했습니다. Google에서 'imgur 429’를 검색해 보세요.

이 내용으로 보아 외부 사이트가 특정 Discourse 포럼에서 온 요청을 속도 제한(rate limiting)하고 있는 것 같습니다?

최근 제 Discourse 인스턴스에서 Imgur 원박스(onebox) 이미지에 대해 429 오류가 발생하기 시작했습니다. 하지만 같은 링크는 여기서는 잘 작동합니다:

https://i.imgur.com/6IXPzY6.png


이상하게도, 링크의 .png 부분을 제거하면 원박스가 표시 됩니다:

https://i.imgur.com/6IXPzY6

Imgur

force custom user agent hosts에 https://i.imgur.com과 https://imgur.com을 추가해 보았지만, 아무런 차이가 없습니다.

안녕하세요 @rahim123 :slight_smile:

@danielabc 님도 최근 imgur에서 같은 문제를 겪고 계셔서, 토론을 한곳에 모으기 위해 게시물을 여기로 옮겼습니다. :+1:

이 문제를 해결하셨나요?

아니요. Imgur가 요청 도메인이나 IP를 기준으로 레이트 리미팅을 적용하고 있는 것으로 보이며, 사용자 에이전트(User Agent) 설정으로는 문제를 해결할 수 없습니다. 결국 우리는 막다른 골목에 내몰린 셈입니다. Imgur이 지주회사에 인수된 후, 이것은 필연적인 종말의 시작일 가능성이 높습니다:

@JammyDodger 또는 @danielabc 검색을 위해 제목의 imugr을 Imgur으로 수정해 주시겠어요? 또한 Imgur images not embedding with 429 error처럼 더 일반적인 표현으로 변경하는 것도 좋을 것 같습니다.
비슷한 질문이 많이 나올 것으로 예상됩니다…

imgur 측에서 일시적인 문제인 것 같습니다. 왜냐하면 실제 에러 메시지는 "Unknown error"이고 상태 코드는 429이기 때문이죠. imgur에서 발생하는 일반적인 429 상태 에러는 "Too many requests"였거든요.

저에게 이것은 Imgur의 일시적인 문제가 아니라, 특정 시간(P) 동안 N회 이상의 요청을 보낸 도메인/IP에 대해 의도적으로 속도 제한을 걸겠다는 그들의 결정으로 들립니다. 물론 그 수치는 공개되지 않았으며, 그들은 우리를 그저 어둠 속에 남겨두었습니다. 하지만 같은 링크가 우리의 Discourse 인스턴스에서는 429 오류를 발생시키면서도 Discourse Meta에서는 정상적으로 작동하는 이유를 설명해 줄 수 있습니다. 여기서는 대부분의 사용자가 Imgur에서 핫링크를 많이 하지 않기 때문일 것입니다.

또한, Imgur 이미지는 이미지에 대한 네이티브 마크다운 마크업을 사용하여 여전히 표시될 수 있음을 참고해야 합니다:

![](https://i.imgur.com/6IXPzY7.png)

BBcode도 작동합니다:

[img]https://i.imgur.com/6IXPzY7.png[/img]

하지만 이는 비기술적 사용자에게 여전히 상당히 복잡한 우회 방법입니다. Discourse의 일반적인 방법은 단순히 URL을 별도의 줄에 붙여넣는 것일 정도로 아름답게 단순하기 때문에, 게시글 편집기 UI에 “이미지 추가” 버튼이 논리적으로 필요하지 않기 때문입니다.

따라서 이미지 링크에 대한 Onebox 시도가 429 오류로 실패할 때, 구운(baked) 게시글에서 필요한 <img> 태그를 생성하도록 Discourse 코드를 조정할 수 있는지, 그리고 게시글 미리보기에서도 이를 반영할 수 있는지에 대해 고려해 주실 수 있을지 궁금합니다.

disabled image download domains(이미지 다운로드 비활성화 도메인)에 imgur을 추가해 보세요. 그러면 이미지를 다운로드하지 않게 됩니다.

이것이 가능한지 확실하지는 않지만, 서버에 프록시를 설정해 보시기 바랍니다.

그리고 속도 제한이 걸릴 때마다 새로운 IP 주소로 이동하세요.

imgurs 속도 제한과 해당 사이트의 사용 방식에 따라 프록시와 비프록시 간 전환을 할 수 있습니다.

제이, 안녕하세요. 제 포럼에는 핫링크된 이미지가 매우 많고, 저장 공간 문제를 처리하고 싶지 않아서 모든 핫링크 이미지 다운로드를 비활성화해 두었습니다.

아직도 Discourse가 429 오류를 반환하는 링크라고 해서 <img> 태그 생성에 실패해서는 안 된다고 생각합니다. 429는 정의상 작동하는 링크를 의미하는 데, Discourse는 404 링크인 것처럼 취급하고 있습니다. 링크가 .jpg나 .png 등으로 끝나고 404가 아니라면, <img> 태그로 감싸서 처리를 끝내면 됩니다. 그렇게 하면 게시물 미리보기에도 올바르게 표시될 것입니다.

그렇다면 그들을 접근하려고 하지 않아야 할 것 같은데요. 어떤 설정을 변경하셨나요?