# Cloudflare R2: 설정 안내 및 구성 오류 처리

**URL:** https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617
**Category:** Self-hosting
**Tags:** s3
**Created:** [4월 21, 2024, 9:13오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617 "2024-04-21T21:13:01Z")
**Posts on this page:** 16
**Page:** 3

<div class="post-metadata">

### Author: ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)
#### Post date: [10월 25, 2024, 7:25오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/42 "2024-10-25T19:25:23Z")

</div>

백업을 다운로드할 수 있고, 지금까지 이 부분에 대해 문제가 없었습니다.

---

<div class="post-metadata">

### Author: ![aosus](https://avatars.discourse-cdn.com/v4/letter/a/ed8c4c/32.png) [@aosus](https://meta.discourse.org/u/aosus)
#### Post date: [10월 25, 2024, 7:30오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/43 "2024-10-25T19:30:41Z")

</div>

S3 업로드가 포함된 상태인가요?

> [@S3 업로드를 백업에 포함하도록 숨겨진 설정 활성화](https://meta.discourse.org/t/enable-hidden-setting-to-include-s3-uploads-in-the-backups/276535):
>
> bookmark This guide explains how to enable a hidden setting in Discourse to include Amazon S3 (Simple Storage Service) uploads in your backups. Discourse has the ability to store media uploads on Amazon S3 for scalability and reliability. However, these uploads are not included in backups by default. This guide covers enabling a hidden setting to include S3 uploads in backups, with options to configure it via the Rails console or the app.yml file. Using Rails Console To enable S3 uploads…

---

<div class="post-metadata">

### Author: ![Brahian\_VT](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/brahian_vt/32/458099_2.png) [@Brahian\_VT](https://meta.discourse.org/u/Brahian_VT)
#### Post date: [10월 27, 2024, 5:11오전 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/44 "2024-10-27T05:11:51Z")

</div>

매우 유용한 정보 감사합니다. 다만, 클립보드에서 이미지를 복사하여 업로드할 때 작동하지 않는 문제가 있습니다. 이 문제를 경험해 보셨나요? 결국 R2에는 업로드가 되었지만, 게시물에서는 이미지가 표시되지 않았습니다:

 ![image](https://global.discourse-cdn.com/meta/original/4X/d/c/a/dca578729706723f9b7dcf395fd0d1e836291230.png)

---

<div class="post-metadata">

### Author: ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)
#### Post date: [1월 21, 2025, 6:55오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/45 "2025-01-21T18:55:08Z")

</div>

이미지 URL을 확인해 보셨나요? 어떻게 생겼나요?

---

<div class="post-metadata">

### Author: ![Editor0732](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/editor0732/32/492698_2.png) [@Editor0732](https://meta.discourse.org/u/Editor0732)
#### Post date: [3월 8, 2025, 2:16오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/46 "2025-03-08T14:16:19Z")

</div>

> [@kamaljain](#):
>
> Discourse 사이트 설정 구성

그래서 여전히 앱에서 r2를 구성할 수 없나요? 웹사이트 설정, 즉 DB\_S3\_CONFIG를 통해서만 가능한 건가요?

---

<div class="post-metadata">

### Author: ![Editor0732](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/editor0732/32/492698_2.png) [@Editor0732](https://meta.discourse.org/u/Editor0732)
#### Post date: [3월 8, 2025, 2:21오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/47 "2025-03-08T14:21:33Z")

</div>

이 메서드를 사용하면 **rake uploads : migrate _to_ s3** 를 통해 기존 로컬 업로드 파일을 R2로 업로드할 수 있나요?

---

<div class="post-metadata">

### Author: ![David\_Ghost](https://avatars.discourse-cdn.com/v4/letter/d/c37758/32.png) [@David\_Ghost](https://meta.discourse.org/u/David_Ghost)
#### Post date: [6월 25, 2025, 7:05오전 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/48 "2025-06-25T07:05:58Z")

</div>

안녕하세요, 이 덕분에 정말 감사합니다.

제가 이해한 대로 \*\*“DISCOURSE\_CDN\_URL”\*\*은 Cloudflare에서 버킷에 연결된 사용자 지정 공개 도메인인 \*\*“DISCOURSE\_S3\_CDN\_URL”\*\*과 동일하게 설정할 수 있는 건가요? 아니면 이를 위해 다른 설정이 필요한가요?

 ![A screenshot displays a Cloudflare dashboard section for custom domains, showing a registered domain "example.com.br" with an active status and TLS version 1.0. (Captioned by AI)](https://global.discourse-cdn.com/meta/original/4X/7/f/9/7f9ba98791590f9d0b86970d16afcac29634132a.png)

---

<div class="post-metadata">

### Author: ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)
#### Post date: [6월 25, 2025, 9:20오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/49 "2025-06-25T21:20:55Z")

</div>

예, discourse 컨테이너의 container.yml 파일에도 동일한 도메인 이름을 추가해야 합니다. 사용 예시는 다음과 같습니다:

```plaintext
  ## 이 Discourse 인스턴스의 HTTP 또는 HTTPS CDN 주소 (pull하도록 구성됨)
  ## 자세한 내용은 https://meta.discourse.org/t/14857 을 참조하세요
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com
  #DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: 'auto'
  DISCOURSE_S3_ENDPOINT: 'https://45dv544v56x **************************** 564564.eu.r2.cloudflarestorage.com'
  DISCOURSE_S3_ACCESS_KEY_ID: '564dfds4f54sdfs ******** 65564545'
  DISCOURSE_S3_SECRET_ACCESS_KEY: 'sddfsdf564564 ********** 6545sd4f54sd56f4s6d5'
  DISCOURSE_S3_CDN_URL: 'https://cdn.discourse.com.br'
  ##DISCOURSE_CDN_URL: 'https://cdn.discourse.com.br'
  #DISCOURSE_S3_BUCKET: 'cloudflarebucketname'
  #DISCOURSE_S3_BACKUP_BUCKET: 'cloudflarebackupbucketname/backups'
  #DISCOURSE_BACKUP_LOCATION: 's3'
  DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
  DISCOURSE_S3_INSTALL_CORS_RULE: false

```

해당 문자로 비활성화된 설정은 관리자 패널을 통해 구성해야 합니다. 예제는 코드에 제공되어 있습니다. 원하시는 경우 이 설정들을 구성 섹션 내에서 활성화할 수도 있으며, 이는 사용자의 선택 사항입니다.

---

<div class="post-metadata">

### Author: ![RoldanLT](https://avatars.discourse-cdn.com/v4/letter/r/da6949/32.png) [@RoldanLT](https://meta.discourse.org/u/RoldanLT)
#### Post date: [7월 9, 2025, 6:54오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/50 "2025-07-09T18:54:03Z")

</div>

> [@kuaza](#):
>
> `DISCOURSE_CDN_URL`

이 옵션을 app.yml에 설정하면, 일부 정적 파일(예: JavaScript)이 R2에 호스팅되지 않기 때문에 사이트가 깨질 수 있습니다.

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [7월 18, 2025, 8:59오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/51 "2025-07-18T20:59:03Z")

</div>

정말 좋습니다. 39번 게시물의 가이드를 그대로 따랐고 모든 것이 정상적으로 작동했습니다. 제안 하나와 질문 두 가지가 있습니다.

제안:  
제가 읽은 내용으로는 CDN 파일 버킷은 공개적으로, 백업 버킷은 비공개로 설정해야 한다고 합니다. 그래서 두 개의 버킷을 생성했는데, 백업 버킷은 비공개로 두되 파일 버킷은 커스텀 도메인을 사용하여 공개로 설정했습니다. 이는 관리자 화면의 두 개의 입력란에 서로 다른 경로를 입력해야 한다는 것을 의미했습니다.  
많은 분들이 최상위 버킷의 경로로 백업을 설정하는 것을 봤는데, 제 생각이 잘못된 것일까요? 아니면 CF R2에 대한 특이사항일까요?

질문 1:  
app.yml 파일에 'DISCOURSE\_INCLUDE\_S3\_UPLOADS\_IN\_BACKUPS: true’를 추가하고 재빌드했지만, 백업으로 이동하여 백업 버튼을 클릭하면 업로드가 포함되지 않는다는 팝업 알림이 여전히 표시됩니다. 이는 팝업에 해당 로직이 없어서 그런 것일까요, 아니면 뭔가 잘못 설정된 것일까요?

질문 2:  
현재 업로드된 파일을 R2로 이동하려면 어떤 명령어를 사용해야 하나요?  
여기저기 찾아보고 다음을 시도해 보았습니다:

```plaintext
./launcher enter app
rake uploads:migrate_to_s3
rake posts:rebake_uncooked_posts

```

하지만 첫 번째 rake 명령어는 app.yml 파일에 S3 옵션을 설정한 경우에만 작동하는 것 같습니다. 맞나요?

그렇게 설정하면 R2가 계속 정상적으로 작동할까요?

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [7월 19, 2025, 1:35오전 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/52 "2025-07-19T01:35:04Z")

</div>

음, 테스트해 봤는데 기대에 미치지 못했어요.  
처음에 실행한 rake 명령어는 AWS에서만 동작하는 것 같아요.

```plaintext
rake aborted!
Seahorse::Client::NetworkingError: Failed to open TCP connection to exotics-unlimited.s3.auto.amazonaws.com:443 (getaddrinfo: Name or service not known) (Seahorse::Client::NetworkingError)

```

다른 S3 벤더에서도 동일한 작업을 수행하는 다른 명령어가 있을까요?

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [7월 22, 2025, 6:41오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/53 "2025-07-22T18:41:07Z")

</div>

> [@RoldanLT](#):
>
> 이 옵션은 app.yml에서 설정할 경우 사이트가 깨집니다. 그 이유는 일부 정적 파일(예: JavaScript)이 R2에 호스팅되지 않기 때문입니다.

R2를 완전히 작동하는 솔루션으로 사용할 수 있는지 확인하기 위해 후속 조치가 있었나요?

---

<div class="post-metadata">

### Author: ![RoldanLT](https://avatars.discourse-cdn.com/v4/letter/r/da6949/32.png) [@RoldanLT](https://meta.discourse.org/u/RoldanLT)
#### Post date: [7월 23, 2025, 12:30오전 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/54 "2025-07-23T00:30:33Z")

</div>

> [@RoldanLT](#):
>
> > [@kuaza](#):
> >
> > `DISCOURSE_CDN_URL`

R2는 정상적으로 작동합니다. 다만 이 옵션을 사용하지 않거나 설정하지 마세요: `DISCOURSE_CDN_URL`

---

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [7월 23, 2025, 8:49오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/55 "2025-07-23T20:49:05Z")

</div>

> [@RoldanLT](#):
>
> R2는 잘 작동합니다. 이 옵션(`DISCOURSE_CDN_URL`)만 사용하지 않거나 설정하지 않으면 됩니다.

네, 즉 일부 정적 파일이 올바르게 푸시/호스팅되지 않기 때문에 완전히 작동하지 않는다는 뜻입니다.  
일부만 작동하는 것이 아니라 모든 것이 정상적으로 작동하도록 만들고 싶습니다.

---

<div class="post-metadata">

### Author: ![Firsh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firsh/32/454861_2.png) [@Firsh](https://meta.discourse.org/u/Firsh)
#### Post date: [9월 6, 2025, 2:05오후 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/56 "2025-09-06T14:05:31Z")

</div>

Cloudflare R2를 사용 중인데, Discourse가 AWS인 것처럼 인식하는 것을 막을 수가 없습니다. 백업이 업로드되지 않습니다. AWS 대신 백업 zip 파일용으로만 사용하려고 합니다. 모든 설정과 특정 버킷에 “object read & write” 권한이 부여된 액세스 토큰을 올바르게 입력했다고 생각합니다. 해당 스레드에서 언급된 CORS 정책도 추가했습니다.

```plaintext
[2025-09-06 13:56:44] Gzipping archive, this may take a while...
[2025-09-06 13:56:49] Uploading archive...
[2025-09-06 13:56:49] EXCEPTION: Aws::S3::Errors::Forbidden
[2025-09-06 13:56:49] /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:559:in `rescue in exists?'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:554:in `exists?'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:46:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:351:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2025-09-06 13:56:49] Deleting old backups...
[2025-09-06 13:56:49] Cleaning stuff up...
[2025-09-06 13:56:49] Removing archive from local storage...
[2025-09-06 13:56:49] Removing '.tar' leftovers...
[2025-09-06 13:56:49] Marking backup as finished...
[2025-09-06 13:56:49] Notifying 'Firsh' of the end of the backup...
[2025-09-06 13:56:54] Finished!

```

---

<div class="post-metadata">

### Author: ![DevTeVe](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/devteve/32/487601_2.png) [@DevTeVe](https://meta.discourse.org/u/DevTeVe)
#### Post date: [10월 30, 2025, 9:07오전 UTC](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617/57 "2025-10-30T09:07:35Z")

</div>

나도 이거 잘 작동하는 것 같네요! (CDN URL을 설정해야 합니다. 그렇지 않으면 업로드는 되지만, GET 요청은 실패합니다.)

[이전 페이지](https://meta.discourse.org/t/cloudflare-r2-navigating-setup-and-handling-configuration-errors/305617.md?page=2)
