# S3 업로드 - PDF에 CDN을 사용해야 하나요?

**URL:** https://meta.discourse.org/t/s3-uploads-using-cdn-for-pdfs/213218
**Category:** Bug
**Created:** [12월 27, 2021, 5:34오후 UTC](https://meta.discourse.org/t/s3-uploads-using-cdn-for-pdfs/213218 "2021-12-27T17:34:49Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Beakerton](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/beakerton/32/244679_2.png) [@Beakerton](https://meta.discourse.org/u/Beakerton)
#### Post date: [12월 27, 2021, 5:34오후 UTC](https://meta.discourse.org/t/s3-uploads-using-cdn-for-pdfs/213218/1 "2021-12-27T17:34:50Z")

</div>

안녕하세요,

저는 Discourse 인스턴스에서 S3 업로드를 활성화하고 Cloudfront CDN으로 구성했습니다. 게시글에 이미지와 PDF 파일을 첨부하여 업로드를 테스트해 보았으며, 두 파일 모두 S3 버킷에 올바르게 업로드되었습니다. 그러나 두 파일이 표시되는 페이지를 확인해 보니, 이미지는 CDN 링크를 사용하는 반면 PDF는 그렇지 않다는 것을 발견했습니다.

이미지의 경우, img src가 CDN을 가리키며 브라우저가 이를 사용하여 썸네일을 로드합니다.

PDF 파일의 경우, 링크 src가 상대 URL(/uploads/short-url/xxxxxxxxxxxxx.pdf)을 가리키며, 이는 실제 S3 버킷(CDN이 아닌)의 파일로 리다이렉트되는 것으로 보입니다.

이것이 예상된 동작인가요? 저는 CDN을 처음 사용하므로, 일반적으로 더 큰 파일은 CDN을 통해 제공하지 않는 것일까요? 모든 설정이 올바르게 작동하는지 확인한 후 기존 게시글을 모두 S3로 마이그레이션하기를 원합니다.

감사합니다!

---

<div class="post-metadata">

### Author: ![Richie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/richie/32/115110_2.png) [@Richie](https://meta.discourse.org/u/Richie)
#### Post date: [12월 28, 2021, 7:33오전 UTC](https://meta.discourse.org/t/s3-uploads-using-cdn-for-pdfs/213218/2 "2021-12-28T07:33:51Z")

</div>

흥미로운 관찰이네요. 제가 이전에 눈치채지 못했던 부분이었습니다.

몇 가지 테스트를 해 보았습니다.

일부 기존 PDF 업로드 파일은 _직접_ CDN으로 링크됩니다:

 ![Screen Shot 2021-12-28 at 07.21.33](https://global.discourse-cdn.com/meta/original/3X/5/2/5200ae04bb5baac4492d13f751b88eb10ee1b5f9.png)

일부 기존 PDF 업로드 파일은 CDN을 _사용하지 않습니다_:

 ![Screen Shot 2021-12-28 at 07.30.45](https://global.discourse-cdn.com/meta/original/3X/4/4/4468500c39b66d2409e00eaedfbc5b145b595d06.png)

차이는 무엇일까요? 🤔

모르겠습니다 🤷‍♂️ 더 많은 예시를 확인해 봐야 할 것 같습니다.

제게 DM을 보내고 새 게시물을 작성하는 간단한 테스트를 해 보았는데, 말씀하신 대로 `/short-url/`가 표시됩니다:

 ![Screen Shot 2021-12-28 at 07.24.01](https://global.discourse-cdn.com/meta/original/3X/0/a/0a06c0ca56f1b089968b374a3deb8f2975545781.png)

링크를 클릭하면 다시 말씀하신 대로 S3 버킷에서 직접 가져옵니다:

 ![Screen Shot 2021-12-28 at 07.25.08](https://global.discourse-cdn.com/meta/original/3X/8/2/82c5bd13c903e3678ec97147a062b37f205544d0.png)

왜 일부 게시물은 CDN을 사용하고 일부는 사용하지 않는지 정확히 모르겠지만, 여러분이 보고 계신 현상 중 일부를 재현할 수는 있습니다.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [12월 30, 2021, 1:13오후 UTC](https://meta.discourse.org/t/s3-uploads-using-cdn-for-pdfs/213218/3 "2021-12-30T13:13:56Z")

</div>

게시물을 다시 구워야(rebake) 할 것 같습니다. CDN을 추가하기 전에 업로드된 게시물은 자동으로 업데이트되지 않습니다. [패턴에 일치하는 모든 게시물을 다시 구우기](https://meta.discourse.org/t/rebake-all-posts-matching-a-pattern/48713) (모든 게시물을 다시 구우는 것이 더 쉬울 수 있습니다)

---

<div class="post-metadata">

### Author: ![Beakerton](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/beakerton/32/244679_2.png) [@Beakerton](https://meta.discourse.org/u/Beakerton)
#### Post date: [12월 30, 2021, 3:56오후 UTC](https://meta.discourse.org/t/s3-uploads-using-cdn-for-pdfs/213218/4 "2021-12-30T15:56:23Z")

</div>

@pfaffman 님, 감사합니다.

모든 게시물을 다시 생성(rebake)해 보았지만 변화가 없었습니다. 다시 생성한 후 테스트 게시물을 몇 개 더 만들어 보았는데요. 제가 확인한 내용(그리고 @Richie 님이 확인한 내용과도 일치하는 것 같습니다)을 다시 정리하면 다음과 같습니다.

- 게시물에 포함된 이미지는 게시물 내 인라인으로 표시되는 이미지에 대해 CDN으로 올바르게 링크됩니다.
- 그러나 해당 이미지의 경우, “다운로드” 링크(이미지를 전체 크기로 볼 때 오른쪽 아래에 위치)는 short-url을 가리키며, 이는 제 S3 버킷(CDN이 아님)으로 리디렉션됩니다.
- PDF 업로드의 경우에도 링크가 short-url을 가리키며, 이는 제 S3 버킷(CDN이 아님)으로 리디렉션됩니다.

short-url이 사용되는 모든 경우에서 리디렉션 시 CDN이 사용되지 않는 것으로 보입니다.

제 Discourse 설정에서는 업로드와 백업 모두에 S3를 사용하고 있습니다. 기존 업로드 파일들을 모두 S3로 옮기지는 않았습니다(이 문제를 해결한 후에 진행할 예정입니다). 또한 **보안 업로드(secure uploads)** 도 활성화되어 있지 않습니다.

감사합니다!

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [12월 30, 2021, 11:17오후 UTC](https://meta.discourse.org/t/s3-uploads-using-cdn-for-pdfs/213218/5 "2021-12-30T23:17:09Z")

</div>

이 문제를 보고해 주셔서 감사합니다. 다음 주에 확인하여 아직 남아 있는 누락된 CDN 우회 설정을 정리하겠습니다. 가능한 경우 항상 CDN으로 직접 접근하도록 해야 하며, 보안 업로드가 활성화된 경우에는 이를 쉽게 수행할 수 없다는 점을 유의해야 합니다.

---

<div class="post-metadata">

### Author: ![renato](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/renato/32/383632_2.png) [@renato](https://meta.discourse.org/u/renato)
#### Post date: [12월 31, 2021, 2:08오전 UTC](https://meta.discourse.org/t/s3-uploads-using-cdn-for-pdfs/213218/7 "2021-12-31T02:08:29Z")

</div>

다른 파일 업로드에서도 이 문제를 확인했습니다:

> [@비이미지 업로드 시 S3 CDN URL이 사용되지 않음](https://meta.discourse.org/t/s3-cdn-url-not-being-used-on-non-image-uploads/175332?u=renato):
>
> Maybe related to [S3 CDN URL ignored when uploading into posts](https://meta.discourse.org/t/s3-cdn-url-ignored-when-uploading-into-posts/54898/18). At first I thought I had missed some configuration, but it’s reproducible here on meta: https://meta.discourse.org/uploads/short-url/dw1U4hctATusBlHsUmWQXeme66j.csv (uploaded [here](https://meta.discourse.org/t/database-performance-recommendations-by-azure-psql/141166)) is a 302 redirect to //cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/5/e/5ebb2cfb8cc907e8e8f7c6559a72d2f4a8ba2f8f.csv Shouldn’t it redirect to https://global.discourse-cdn.com/meta/original/3X/5/e/5ebb2cfb8cc907e8e8f7c6…
