가이드

Cloudflare R2용 파일 관리자: Nubbo에 연결하기

Cloudflare R2 버킷을 Nubbo에 연결하는 방법: API 토큰, Account ID, 단계별 마법사 진행, CORS 규칙, 실패했을 때 해결하는 방법을 알아보세요.

Nubbo는 R2 API 토큰과 계정의 Account ID로 Cloudflare R2에 연결해요. 몇 분이면 버킷을 직접 업로드, 공유 링크, 갤러리를 갖춘 파일 탐색기에서 사용할 수 있어요. 이 가이드는 Nubbo 마법사를 단계별로 따라가며 두 가지 방법을 모두 다뤄요: 자동 연결 또는 버킷 하나로 제한된 키를 사용한 연결.

제공되는 기능

  • 버킷을 드라이브처럼 탐색하세요: 폴더, 보기 방식, 검색, 휴지통, 라벨, 즐겨찾기.
  • 브라우저와 Cloudflare R2 사이에서 파일을 직접 업로드하고 다운로드하세요. 파일은 Nubbo 서버를 거치지 않아요.
  • 비밀번호, 만료일, 다운로드 횟수 제한을 걸어 파일과 폴더를 공유하고, 버킷으로 파일을 받고, 갤러리를 만들 수 있어요.
  • 키는 AES-256-GCM으로 암호화되어 저장되며, 언제든지 버킷 연결을 해제할 수 있어요.

시작하기 전에

Cloudflare R2 계정과 Nubbo 계정이 필요해요. 연결하는 버킷은 각각 요금제 한도에 포함돼요: 무료 요금제는 2개, Personal은 5개까지 연결할 수 있고 Pro는 제한이 없어요. 첫 버킷을 만들기 전에 Cloudflare가 대시보드에서 R2 구독을 활성화하도록 요청해요. 버킷에 관할 구역(EU, FedRAMP 또는 US)이 있다면 마법사에서 선택하고, Nubbo는 그 관할 구역의 엔드포인트를 사용해요.

연결 방법 선택하기

Nubbo 마법사에는 두 가지 방법이 있어요. 어느 쪽이든 결과는 같아요: 버킷이 연결되고 브라우저에서 업로드할 준비가 돼요.

자동제한된 키 사용
키계정 전체에 액세스버킷 하나로 제한
버킷Nubbo가 기존 버킷을 사용하거나 새로 만들어요먼저 직접 만들어요
CORSNubbo가 규칙을 추가해 줘요규칙을 직접 추가해요
선택할 때가장 빠른 방법계정 전체 액세스를 주고 싶지 않을 때

제한된 키는 Nubbo에 필요한 최소한의 접근 권한이에요. 버킷 하나에 대한 Object Read & Write예요. 이 키로는 Nubbo가 버킷 목록을 보거나 버킷을 만들 수 없으므로, 버킷 이름을 입력하고 CORS 규칙을 직접 추가해요.

자동 연결

1단계: Cloudflare R2에서 키 만들기

  1. dash.cloudflare.com에 로그인하고 R2 object storage를 여세요. 대시보드 메뉴가 사용 중인 언어로 표시될 수 있어요.
  2. API Tokens를 열고 Create Account API token을 누르세요. Overview의 Account Details, Manage에서도 열 수 있어요.
  3. Admin Read & Write 권한을 선택하고 토큰을 만드세요.
  4. Access Key ID와 Secret Access Key를 복사하세요. Cloudflare는 시크릿을 한 번만 보여 줘요. 토큰 값이 아니라 이 두 키를 사용하세요.
  5. R2 Overview 페이지에 표시된 Account ID도 복사하세요.

2단계: Nubbo에서 버킷 연결하기

  1. Nubbo에서 버킷을 열고 버킷 연결을 누르세요. Cloudflare R2를 선택하고 계속을 누르세요.

    Cloudflare R2가 선택된 Nubbo 마법사의 프로바이더 단계 Cloudflare R2가 선택된 Nubbo 마법사의 프로바이더 단계
  2. 자동을 선택하고 계속을 누르세요.

    자동과 제한된 키 사용 옵션이 있는 연결 방법 단계 자동과 제한된 키 사용 옵션이 있는 연결 방법 단계
  3. 키 단계에서 Access Key ID, Secret Access Key, Account ID를 붙여넣으세요. Nubbo가 Account ID로 계정 엔드포인트를 만들어요. R2 리전은 항상 auto예요. 키 확인을 누르기 전에 버킷의 관할 구역을 선택하세요. 대부분의 버킷은 **기본(관할 구역 없음)**이고, 그 외에 EU, FedRAMP, US가 있어요. 엔드포인트도 함께 바뀌고(EU는 https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com), 목록에는 그 관할 구역의 버킷만 보여요. 키 확인을 누르세요. Nubbo가 키가 작동하는지, 계정 전체에 액세스할 수 있는지 확인해요.

    빠른 설정 가이드와 키 입력란이 있는 Cloudflare R2의 키 단계 빠른 설정 가이드와 키 입력란이 있는 Cloudflare R2의 키 단계
  4. 버킷 중 하나를 고르고 이 버킷 사용을 누르거나, 새로 만들기를 선택해 이름을 입력하고(요청하면 리전도 선택하고) 만들고 준비하기를 누르세요. Nubbo가 앱에서의 업로드와 다운로드만 허용하는 CORS 규칙을 버킷에 추가하며, 기존 규칙은 그대로 유지해요.

    버킷 목록과 새로 만들기 옵션이 있는 버킷 단계 버킷 목록과 새로 만들기 옵션이 있는 버킷 단계
  5. 세 가지 확인 항목을 검토하고, 원하면 Nubbo에서 표시할 이름을 바꾼 뒤 완료를 누르세요. 버킷이 버킷 페이지에 표시되고 탐색기에서 열 수 있어요.

    연결, 버킷, CORS 확인 항목이 있는 완료 단계 연결, 버킷, CORS 확인 항목이 있는 완료 단계

Nubbo가 사용 중인 키로 CORS 규칙을 추가할 수 없으면 마법사가 CORS 단계로 안내해요. 그다음 CORS 규칙 추가하기를 따라 하세요.

제한된 키로 연결하기

1단계: Cloudflare R2에서 버킷과 키 준비하기

  1. R2, Overview에서 Create bucket을 누르고 이름(소문자, 숫자, 하이픈)을 정하세요. 선택할 리전은 없어요. 데이터가 EU에 있어야 한다면 관할 구역 EU를 선택하세요. 엔드포인트도 함께 바뀌어요.
  2. API Tokens를 열고 Create Account API token을 누르세요.
  3. Object Read & Write 권한을 선택하고 버킷으로 제한하세요.
  4. Access Key ID, Secret Access Key, Account ID를 복사하세요.

2단계: Nubbo에서 버킷 연결하기

  1. 버킷 페이지에서 버킷 연결을 누르고 Cloudflare R2를 선택한 뒤 제한된 키 사용을 선택하세요.
  2. Access Key ID, Secret Access Key, Account ID를 붙여넣으세요. 키 확인을 누르기 전에 버킷과 같은 관할 구역을 선택하세요. 키 확인을 누르세요.
  3. 정확한 버킷 이름을 입력하고 액세스 확인을 누르세요.
  4. 마법사가 추가해야 할 규칙과 함께 CORS 단계로 넘어가요.

CORS 규칙 추가하기

CORS 규칙은 브라우저가 https://nubbo.app에서 버킷으로 파일을 업로드하고 다운로드할 수 있게 해 줘요. 마법사의 CORS 단계에 표시되는 규칙과 같아요.

  1. R2에서 버킷을 열고 Settings로 이동하세요.
  2. CORS Policy 아래의 Add CORS policy를 누르고 JSON 탭을 선택하세요.
  3. 규칙을 붙여넣고 Save를 누르세요. Cloudflare가 적용하는 데 최대 30초가 걸릴 수 있어요.
[
  {
    "AllowedHeaders": ["*"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
    "AllowedOrigins": ["https://nubbo.app"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
  }
]
버킷에 추가할 규칙이 표시된 CORS 단계 버킷에 추가할 규칙이 표시된 CORS 단계

저장했으면 Nubbo로 돌아가 추가했어요, 확인을 누르세요. 키에 CORS 변경 권한이 있다면 자동 설정 시도로 Nubbo가 대신 설정해 줘요.

문제가 생겼을 때

Nubbo 메시지해결 방법
“이 키는 버킷 하나로 제한된 것 같아요. 제한된 방식으로 계속하거나 전체 액세스 권한이 있는 키를 만들 수 있어요.”제한된 키로 계속을 누르거나, 계정 전체에 액세스할 수 있는 키를 만든 뒤 다른 키 사용해 보기를 누르세요.
“키에 버킷 생성 권한이 없어요.”전체 액세스 권한이 있는 키를 사용하거나, 관리 화면에서 버킷을 만든 뒤 관리 화면에서 만들었어요를 누르세요.
“이 이름은 이 프로바이더에서 이미 사용 중이에요. 다른 이름을 시도하세요.”버킷 이름은 프로바이더 전체에서 고유해야 해요: 다른 이름을 고르세요.
“키에 설정 권한이 없어요.”위에서 설명한 대로 CORS 규칙을 직접 추가하세요.
“아직 작동하지 않아요. 규칙을 검토하고 다시 확인하세요. 일부 프로바이더는 적용하는 데 1분 정도 걸려요.”오리진이 끝에 슬래시 없이 정확히 https://nubbo.app인지 확인하고, 1분 정도 기다린 뒤 다시 확인하세요.
“이 bucket은 이미 사용 중이에요.”이 버킷은 내 계정이나 다른 계정에서 이미 Nubbo에 연결되어 있어요.
“인증 정보가 유효하지 않아요. 액세스 키와 시크릿 액세스 키를 확인해 주세요.”Cloudflare API 토큰 값이 아니라 토큰의 Access Key ID와 Secret Access Key를 붙여넣었는지 확인하세요.
“bucket을 찾을 수 없어요. 이름과 리전을 확인해 주세요.”이름을 확인하고, Nubbo의 관할 구역이 버킷과 같은지 확인하세요(R2에서는 버킷의 Settings에 표시돼요).

비용

R2는 외부 전송에 요금을 부과하지 않으며 매월 무료 사용량이 있어요. Cloudflare R2 무료 사용량에서 자세히 설명해 드려요.

자주 묻는 질문

Cloudflare Account ID는 어디에서 찾나요?

R2 Overview 페이지의 Account Details 아래에 있어요. 숫자와 a부터 f까지의 문자로 이루어진 32자 문자열이에요.

R2 토큰에는 어떤 권한이 필요한가요?

Nubbo에 필요한 최소한의 접근 권한은 버킷으로 제한한 Object Read & Write예요. 제한된 키 경로를 사용하면 버킷 이름을 직접 입력하고 CORS 규칙도 직접 추가해요. 자동 경로에는 Admin Read & Write가 필요하며, Nubbo는 이 권한으로 버킷 목록을 보고, 버킷을 만들고, CORS를 설정해요.

R2에서는 어떤 리전을 사용하나요?

따로 없어요: R2는 auto 리전을 사용하며 Nubbo가 자동으로 설정해 줘요. Cloudflare의 위치 힌트는 버킷 연결 방식에 영향을 주지 않아요.

EU 같은 관할 구역이 있는 R2 버킷도 연결할 수 있나요?

네. 키 단계에서 버킷의 관할 구역(EU, FedRAMP 또는 US)을 선택하세요. 관할 구역마다 https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com 같은 자체 엔드포인트가 있고, 그 안에서 만든 버킷만 보여요.

Nubbo에서 다운로드하면 R2에서 외부 전송 비용이 드나요?

아니요. R2는 외부로 나가는 데이터 전송에 요금을 부과하지 않아요. 다만 다운로드는 읽기 작업으로 계산돼요.

출처

요금과 제한은 아래 공식 페이지를 기준으로 해요. 프로바이더가 변경할 수 있으니 결정하기 전에 확인하세요.