# 429 오류로 Onebox가 실패해도 유효한 \<img\> 태그를 생성해야 합니다

**URL:** https://meta.discourse.org/t/onebox-fail-with-429-error-should-still-create-valid-img-tags/273362
**Category:** Feature
**Tags:** onebox
**Created:** [7월 31, 2023, 3:18오후 UTC](https://meta.discourse.org/t/onebox-fail-with-429-error-should-still-create-valid-img-tags/273362 "2023-07-31T15:18:16Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)
#### Post date: [7월 31, 2023, 3:18오후 UTC](https://meta.discourse.org/t/onebox-fail-with-429-error-should-still-create-valid-img-tags/273362/1 "2023-07-31T15:18:16Z")

</div>

저의 Discourse 포럼에서는 가능할 경우 외부 이미지 호스팅 서비스 사용을 권장하고 있습니다. 가장 많이 사용되는 서비스는 Imgur이며, 일정 시간이 지나면 429 오류로 Discourse 서버에 대한 요청을 제한(rate-limiting)하기 시작합니다. Imgur 측에서 해결할 수 없는 문제이긴 하지만, Discourse도 이를 최적의 방식으로 처리하지 못하고 있습니다. 현재 Imgur에서 429 오류를 발생시킬 때, Discourse는 이를 잘못된 이미지 링크로 해석하여 단순히 `<a>` 태그로 이미지 URL을 표시합니다. 하지만 각 사용자의 브라우저와 IP가 다르기 때문에, Discourse에서 해당 이미지를 인라인으로 보는 것을 막을 수는 없습니다. Discourse는 이미지가 표시되도록 유효한 HTML을 생성해야 합니다. 예를 들어:

`https://i.imgur.com/eHltaVt.jpeg`  
이 URL은 제 서버에서 요청 제한(rate-limit)을 받고 있으며, Discourse는 단순히 링크를 생성합니다:  
`<a href="https://i.imgur.com/eHltaVt.jpeg" target="_blank" rel="noopener noreferrer" tabindex="-1">https://i.imgur.com/eHltaVt.jpeg</a>`

하지만 다음 HTML은 최종 사용자의 브라우저에서 게시글 미리보기와 게시된 글(baked post) 모두에서 이미지를 정상적으로 표시합니다:  
`<img src="https://i.imgur.com/eHltaVt.jpeg">`  
즉, 서버가 URL에 접근했을 때 429 오류를 받더라도 Discourse는 이 HTML을 생성해야 하며, 404 오류를 받는 경우에만 맨 URL(naked URL)만 남겨두어야 합니다.
