Nubbo는 애플리케이션 키와 계정 리전을 사용해 S3 호환 API로 Backblaze B2에 연결해요. 몇 분이면 버킷을 직접 업로드, 공유 링크, 갤러리를 갖춘 파일 탐색기에서 사용할 수 있어요. 이 가이드는 Nubbo 마법사를 단계별로 따라가며 두 가지 방법을 모두 다뤄요: 자동 연결 또는 버킷 하나로 제한된 키를 사용한 연결.
제공되는 기능
- 버킷을 드라이브처럼 탐색하세요: 폴더, 보기 방식, 검색, 휴지통, 라벨, 즐겨찾기.
- 브라우저와 Backblaze B2 사이에서 파일을 직접 업로드하고 다운로드하세요. 파일은 Nubbo 서버를 거치지 않아요.
- 비밀번호, 만료일, 다운로드 횟수 제한을 걸어 파일과 폴더를 공유하고, 버킷으로 파일을 받고, 갤러리를 만들 수 있어요.
- 키는 AES-256-GCM으로 암호화되어 저장되며, 언제든지 버킷 연결을 해제할 수 있어요.
시작하기 전에
Backblaze B2 계정과 Nubbo 계정이 필요해요. 연결하는 버킷은 각각 요금제 한도에 포함돼요: 무료 요금제는 2개, Personal은 5개까지 연결할 수 있고 Pro는 제한이 없어요. B2에서는 계정을 만들 때 리전을 선택하며, 그 리전이 모든 버킷에 적용돼요. 리전은 아무 버킷의 엔드포인트에서 확인할 수 있으며 s3.<region>.backblazeb2.com 형식이에요: 그것이 Nubbo에서 선택할 리전이에요. 계정 마스터 키는 S3 API에서 작동하지 않으므로 항상 애플리케이션 키를 만드세요.
연결 방법 선택하기
Nubbo 마법사에는 두 가지 방법이 있어요. 어느 쪽이든 결과는 같아요: 버킷이 연결되고 브라우저에서 업로드할 준비가 돼요.
| 자동 | 제한된 키 사용 | |
|---|---|---|
| 키 | 계정 전체에 액세스 | 버킷 하나로 제한 |
| 버킷 | Nubbo가 기존 버킷을 사용하거나 새로 만들어요 | 먼저 직접 만들어요 |
| CORS | Nubbo가 규칙을 추가해 줘요 | 규칙을 직접 추가해요 |
| 선택할 때 | 가장 빠른 방법 | 계정 전체 액세스를 주고 싶지 않을 때 |
자동 연결
1단계: Backblaze B2에서 키 만들기
- backblaze.com에서 B2 Cloud Storage, Application Keys를 열고 Add a New Application Key를 누르세요. 마스터 애플리케이션 키는 사용하지 마세요.
- 이름을 정하고 Allow Access to Bucket(s) 항목을 All로, Type of Access를 Read and Write로 설정하세요. Create New Key를 누르세요.
- keyID(액세스 키)와 applicationKey(시크릿)를 복사하세요. Backblaze는 applicationKey를 한 번만 보여 줘요.
- Buckets에서 아무 버킷의 엔드포인트를 보면 리전을 알 수 있어요.
2단계: Nubbo에서 버킷 연결하기
Nubbo에서 버킷을 열고 버킷 연결을 누르세요. Backblaze B2를 선택하고 계속을 누르세요.

자동을 선택하고 계속을 누르세요.

키 단계에서 keyID와 applicationKey를 붙여넣고 계정 리전을 선택하세요. 키 확인을 누르세요. Nubbo가 키가 작동하는지, 계정 전체에 액세스할 수 있는지 확인해요.

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

세 가지 확인 항목을 검토하고, 원하면 Nubbo에서 표시할 이름을 바꾼 뒤 완료를 누르세요. 버킷이 버킷 페이지에 표시되고 탐색기에서 열 수 있어요.

그다음 버킷에서 Lifecycle Settings를 열고 Keep only the last version of the file을 선택하세요. 그렇지 않으면 B2가 모든 버전을 보관하므로 Nubbo에서 삭제해도 공간이 비지 않아요.
Nubbo가 사용 중인 키로 CORS 규칙을 추가할 수 없으면 마법사가 CORS 단계로 안내해요. 그다음 CORS 규칙 추가하기를 따라 하세요.
제한된 키로 연결하기
1단계: Backblaze B2에서 버킷과 키 준비하기
- Buckets에서 Create a Bucket을 누르고 이름을 정한 뒤 Private으로 유지하세요.
- 버킷에서 Lifecycle Settings를 열고 Keep only the last version of the file을 선택하세요.
- 버킷 엔드포인트를 보고 리전을 확인하세요.
- Application Keys에서 Add a New Application Key를 누르고, Read and Write로 버킷에만 액세스하도록 제한한 뒤 Allow List All Bucket Names를 체크하세요. Create New Key를 누르세요.
- keyID와 applicationKey를 복사하세요.
2단계: Nubbo에서 버킷 연결하기
- 버킷 페이지에서 버킷 연결을 누르고 Backblaze B2를 선택한 뒤 제한된 키 사용을 선택하세요.
- keyID와 applicationKey를 붙여넣고 리전을 선택하세요. 키 확인을 누르세요.
- 정확한 버킷 이름을 입력하고 액세스 확인을 누르세요.
- 마법사가 추가해야 할 규칙과 함께 CORS 단계로 넘어가요.
CORS 규칙 추가하기
CORS 규칙은 브라우저가 https://nubbo.app에서 버킷으로 파일을 업로드하고 다운로드할 수 있게 해 줘요. 마법사의 CORS 단계에 표시되는 규칙과 같아요.
B2 콘솔의 CORS 규칙은 미리 정해진 설정이라 작업을 선택할 수 없으므로, Nubbo 규칙은 버킷 설정을 변경할 수 있는 키로 B2 명령줄 도구(b2)를 사용해 추가해요.
- CLI를 설치하세요. 예:
pip install b2. - keyID와 applicationKey로 로그인하세요:
b2 account authorize. your-bucket을 버킷 이름으로 바꿔 규칙을 적용하세요.allPrivate는 버킷을 비공개로 유지해요.
b2 bucket update --cors-rules '[{"corsRuleName":"nubbo","allowedOrigins":["https://nubbo.app"],"allowedOperations":["s3_get","s3_head","s3_put","s3_post","s3_delete"],"allowedHeaders":["*"],"exposeHeaders":["etag"],"maxAgeSeconds":3600}]' your-bucket allPrivate

적용했으면 Nubbo로 돌아가 추가했어요, 확인을 누르세요. 키에 CORS 변경 권한이 있다면 자동 설정 시도로 Nubbo가 대신 설정해 줘요.
문제가 생겼을 때
| Nubbo 메시지 | 해결 방법 |
|---|---|
| “이 키는 버킷 하나로 제한된 것 같아요. 제한된 방식으로 계속하거나 전체 액세스 권한이 있는 키를 만들 수 있어요.” | 제한된 키로 계속을 누르거나, 계정 전체에 액세스할 수 있는 키를 만든 뒤 다른 키 사용해 보기를 누르세요. |
| “bucket을 찾을 수 없어요. 이름과 리전을 확인해 주세요.” | 정확한 버킷 이름과 선택한 리전이 버킷의 리전인지 확인하세요. |
| “키에 버킷 생성 권한이 없어요.” | 전체 액세스 권한이 있는 키를 사용하거나, 관리 화면에서 버킷을 만든 뒤 관리 화면에서 만들었어요를 누르세요. |
| “이 이름은 이 프로바이더에서 이미 사용 중이에요. 다른 이름을 시도하세요.” | 버킷 이름은 프로바이더 전체에서 고유해야 해요: 다른 이름을 고르세요. |
| “키에 설정 권한이 없어요.” | 위에서 설명한 대로 CORS 규칙을 직접 추가하세요. |
| “아직 작동하지 않아요. 규칙을 검토하고 다시 확인하세요. 일부 프로바이더는 적용하는 데 1분 정도 걸려요.” | 오리진이 끝에 슬래시 없이 정확히 https://nubbo.app인지 확인하고, 1분 정도 기다린 뒤 다시 확인하세요. |
| “이 bucket은 이미 사용 중이에요.” | 이 버킷은 내 계정이나 다른 계정에서 이미 Nubbo에 연결되어 있어요. |
| “인증 정보가 유효하지 않아요. 액세스 키와 시크릿 액세스 키를 확인해 주세요.” | S3 API에서 작동하지 않는 마스터 애플리케이션 키를 사용하고 있지 않은지 확인하세요. |
| “bucket이 다른 리전에 있어요. 설정된 리전을 확인해 주세요.” | 버킷 엔드포인트에 표시된 리전을 Nubbo에서 선택하세요. |
비용
Backblaze B2는 TB당 요금을 부과하며, 10 GB가 무료이고 저장 용량의 3배까지 외부 전송이 무료예요. Backblaze B2 요금에서 자세히 설명해 드려요.
자주 묻는 질문
Backblaze 마스터 애플리케이션 키를 사용할 수 있나요?
아니요. Backblaze는 S3 호환 API에서 마스터 키를 지원하지 않아요. Application Keys에서 애플리케이션 키를 만드세요.
Nubbo에서 B2의 리전은 무엇을 선택하나요?
버킷 엔드포인트에 있는 리전이에요. 엔드포인트는 s3.<region>.backblazeb2.com 형식이에요. B2에서는 한 계정의 모든 버킷이 같은 리전에 있어요.
CORS를 B2 CLI로 설정하는 이유는 무엇인가요?
콘솔의 규칙은 미리 정해진 설정이라 Nubbo에 필요한 작업을 선택할 수 없기 때문이에요. CLI가 정확한 규칙을 적용하는 가장 간단한 방법이에요. B2 엔드포인트에 PutBucketCors를 실행하는 S3 도구라면 무엇이든 사용할 수 있어요.
Nubbo에서 삭제해도 B2의 공간이 비지 않는 이유는 무엇인가요?
B2는 기본적으로 이전 버전을 보관하기 때문이에요. 버킷의 Lifecycle Settings에서 Keep only the last version of the file을 선택하세요.
출처
요금과 제한은 아래 공식 페이지를 기준으로 해요. 프로바이더가 변경할 수 있으니 결정하기 전에 확인하세요.