# 모든 게시물을 다시 베이킹할 때 잠재적인 문제를 피하는 방법?

**URL:** https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271
**Category:** Support
**Tags:** onebox
**Created:** [12월 18, 2022, 12:58오후 UTC](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271 "2022-12-18T12:58:28Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [12월 18, 2022, 12:58오후 UTC](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271/1 "2022-12-18T12:58:28Z")

</div>

안녕하세요!

여러 가지 이유로 인해 모든 게시물을 다시 생성(Rebake)하는 것이 권장되는 조치인 경우가 있습니다.

본인도 다시 생성 과정에서 문제가 발생한 경험을 했으며, 다른 잠재적 문제들도 보고/예상했기에 이러한 문제들을 어떻게 피할 수 있는지 알고 싶습니다.

- 200만 개의 게시물을 다시 생성하면 YouTube에 과도한 요청이 발생하여 [IP가 블랙리스트에 등록](https://meta.discourse.org/t/onebox-assistant-crawl-for-those-previews-reliably/107405/128?u=canapin)되고, 이로 인해 Discourse가 미리보기를 생성하지 못하게 됩니다.

- 원본 URL이 깨지거나 리디렉션되는 경우, 원박스(Oneboxes)의 제목, 썸네일, 발췌문(디스코어 데이터베이스의 cooked 필드에 복사된 것)은 [원박스가 깨지고](https://meta.discourse.org/t/what-if-twitter-implodes/246343?u=canapin) 이 정보가 손실되는 것으로 보입니다.

- [예전에 잘 표시되던 Facebook과 Instagram 원박스가 있습니다](https://unicyclist.com/t/desert-muni-race-ridgercrest-ca/127502/23?u=canapin). 현재는 그렇지 않습니다(iframe으로 표시됩니다. [이 커밋](https://github.com/discourse/discourse/pull/14789/commits/d68859f6d8898679202193302bb40d075ba50e27) 참조).  
추가 정보: [Instagram embedding features and layout](https://meta.discourse.org/t/instagram-embedding-features-and-layout/233056?u=canapin) (그때 이후로 레이아웃이 조금 바뀌었고, 현재 iframe은 내용을 잘라내고 있습니다) 및 [Facebook oneboxes not working on my forums](https://meta.discourse.org/t/facebook-oneboxes-not-working-on-my-forums/238906?u=canapin) ([Discord조차 “신뢰할 수 있는” IP를 가질 수 없는 것 같습니다…?](https://cdn.discordapp.com/attachments/722072871693844481/1054017994818326558/image.png) 공개 링크입니다)

- 여러 가지 이유로 제 포럼에서 Facebook(따라서 제 지식 범위 내에서는 Instagram도) 지원을 중단하기로 결정했습니다. 모든 게시물을 다시 생성하면 이전에 올바르게 원박스로 표시되던 모든 링크가 깨질 것이라고 추측합니다. 맞습니까?

이러한 문제 중 일부를 우회하기 위해 ["Onebox Assistant", crawl for those previews reliably!](https://meta.discourse.org/t/onebox-assistant-crawl-for-those-previews-reliably/107405?u=canapin) 가 도움이 될 수 있지만, 모든 경우에 해당하지는 않습니다. 예를 들어 Facebook 미리보기에는 도움이 되지 않았습니다.

* * *

다시 생성(Rebake) 시 기존 원박스 정보를 보존하기 위해 무엇을 할 수 있습니까?

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [12월 20, 2022, 11:48오전 UTC](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271/2 "2022-12-20T11:48:59Z")

</div>

> [@MarcP](#):
>
> 임베드/원박스가 포함된 게시물을 제외하고 모든 게시물을 다시 베이킹(rebake)할 수 있는 패턴이 있을까요?
> 
> > [@](#):
> >
> > 특정 문자열이나 정규식에 해당하는 모든 게시물을 다시 베이킹하고 싶으신가요? 바로 해보겠습니다! 먼저 Your Site First에 접속하여 SSH를 통해 Droplet에 연결하고, Discourse 인스턴스를 위한 Docker 컨테이너에 진입하세요: cd /var/discourse ./launcher enter app 특정 문자열을 포함하는 모든 게시물 다시 베이킹 다음 명령을 실행하세요: rake posts:rebake\_match[“pattern”] pattern를 일치시키고자 하는 문자열로 대체하세요. 수행되는 매칭은 대소문자를 구분하지 않는다는 점에 유의하세요. rake posts:rebake\_match[“slight\_smile”] The …

재베이킹 기능에 더 신중할 수 있도록 개선이 필요하다고 생각합니다.

- 선택된 사이트 또는 모든 사이트에 대해 속도 제한(rate limit) 적용
- 어떤 이유로든 재검색(refetch)이 실패하면 원래의 원박스를 상속

즉, 선택 가능한 옵션으로라도 최소한 파괴적이지 않은(non-damaging) 재베이킹이 필요하다고 생각합니다.

(최신화된 404 상태를 중시하거나, 오래된 게시물 자체를 전혀 중요하게 여기지 않는 Discourse 커뮤니티가 있을 수 있지만, 오래된 스레드를 온전히 보존하기를 매우 원하는 커뮤니티도 있을 것입니다.)

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [1월 3, 2023, 2:31오후 UTC](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271/3 "2023-01-03T14:31:59Z")

</div>

기능 요청으로 다시 작성하고 재분류할 수 있을까요?

---

<div class="post-metadata">

### Author: ![Stephen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/stephen/32/95011_2.png) [@Stephen](https://meta.discourse.org/u/Stephen)
#### Post date: [1월 3, 2023, 4:46오후 UTC](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271/4 "2023-01-03T16:46:40Z")

</div>

> [@Ed\_S](#):
>
> 어떤 이유로든 재검색이 실패하면 원래의 원박스를 상속하세요

트윗의 내용을 자동으로 다시 가져오는 데 정말로 어떤 가치가 있을까요? 박스가 체크되지 않는 한, 리베이크가 원박스된 내용을 다시 가져오는 것을 건너뛰는 방식으로 진행되어도 괜찮습니다.

---

<div class="post-metadata">

### Author: ![Ed\_S](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ed_s/32/134015_2.png) [@Ed\_S](https://meta.discourse.org/u/Ed_S)
#### Post date: [1월 3, 2023, 6:47오후 UTC](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271/5 "2023-01-03T18:47:48Z")

</div>

좋은 생각이에요. 더 견고하고, 속도 제한 문제로 인한 오류 발생 가능성도 낮아지니까요. 별도로 지정되지 않는 한 모든 원박스(onebox)는 그대로 두세요.

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [1월 3, 2023, 8:26오후 UTC](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271/6 "2023-01-03T20:26:46Z")

</div>

> [@Canapin](#):
>
> 200만 개의 게시물을 다시 생성(rebake)하면 YouTube에 너무 많은 요청이 발생하여 [IP가 블랙리스트에 등록](https://meta.discourse.org/t/onebox-assistant-crawl-for-those-previews-reliably/107405/128)되고, 이로 인해 Discourse가 미리보기를 생성하지 못하게 됩니다.

해당 내용을 게시해 주셔서 감사합니다. 제가 작업 중인 프로젝트에 영향을 미칠 수 있습니다. 제한이 발동되는 요청 횟수에 대해 어떤 아이디어가 있으신가요?

YouTube API 문서를 살펴보니, API 키를 사용하여 요청을 보낼 경우 24시간당 최대 10,000회의 GET 요청이 허용되는 것으로 보입니다: [YouTube Data API Overview &nbsp;|&nbsp; Google for Developers](https://developers.google.com/youtube/v3/getting-started#quota). 그러나 인증되지 않은 API 요청을 통해 비디오 미리보기 이미지를 가져오는 경우의 속도 제한(rate limit) 방식은 명확하지 않습니다.

iframe을 통해 \_재생\_되는 비디오에는 속도 제한이 적용되지 않는다고 생각하지만, 이를 확인하는 것이 좋습니다: [YouTube Player API Reference for iframe Embeds &nbsp;|&nbsp; YouTube IFrame Player API &nbsp;|&nbsp; Google for Developers](https://developers.google.com/youtube/iframe_api_reference).

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [1월 3, 2023, 8:30오후 UTC](https://meta.discourse.org/t/how-to-avoid-potential-issues-when-rebaking-all-posts/249271/7 "2023-01-03T20:30:34Z")

</div>

> [@simon](#):
>
> 한도를 트리거하는 데 얼마나 많은 요청이 필요한지 아시나요?

모르겠습니다.

API를 사용하지 않고 Onebox Assistant만 활성화하여 문제를 해결했습니다. 어떻게 문제가 해결되었는지 정확히 알 수 없으며, 현재에도 작동할지 역시 알 수 없습니다.

> [@"Onebox Assistant", crawl for those previews reliably!](https://meta.discourse.org/t/onebox-assistant-crawl-for-those-previews-reliably/107405/128?u=canapin):
>
> Not related, but I used the plugin when rebaking all my posts after a huge import (1,6 M posts), including posts containing Youtube videos. Youtube ended by blacklisting my IP after too much embedding. Installing and enabling Onebox Assistant resolved this issue, and I didn’t need it after the rebake. I disabled it but didn’t remove it (just in case, you know). It was perfect for this task.
