← 전체 가이드로 돌아가기
08. 데이터와 인프라

R2 스토리지 가이드

# R2 스토리지 가이드 Cloudflare R2는 의료진 사진, 블로그 이미지, 갤러리 사진 등을 클라우드에 저장하는 서비스입니다. 관리자 페이지에서 업로드하면 **자동으로 R2에 저장**되므로, 대부분의 경우 에이전트가 관리합니다. --- ## 일반 사용자 ### 관리자 페이지에서 이미지 업로드 1. **관리자 로그인** → 의료진/프로그램/블로그 관리 2. **이미지 업로드** → 자동으로 Cloudflare R2에 저장 3. **저장 위치**: - 의료진 사진 → `staff/` 폴더 - 프로그램 이미지 → `programs/` 폴더 - 블로그 이미지 → `posts/` 폴더 - 갤러리 → `gallery/` 폴더 ### R2 설정이 필요한 경우 이미지 업로드가 실패하면: ``` "에이전트에게 R2 설정해줘" ``` 또는: ``` "이미지 업로드 안 되는데 확인해줘" ``` 에이전트가 자동으로: 1. Cloudflare 로그인 확인 2. R2 버킷 생성 3. 설정 업데이트 4. 다시 배포 --- ## R2 vs 로컬 파일 저장 ``` 로컬 파일 (public/local/) R2 클라우드 (동적 업로드) ─────────────────────── ────────────────────── 로고, 아이콘, 정적 배너 의료진 사진, 블로그 이미지 코드에서 직접 참조 관리자 페이지에서 업로드 Git으로 버전 관리 Cloudflare가 자동 관리 ``` --- ## 저장 용량 | 항목 | 무료 한도 | |------|---------| | 저장 공간 | 10GB/월 | | 읽기 요청 | 1,000만/월 | | 쓰기 요청 | 100만/월 | 일반적인 한의원 홈페이지는 무료 한도로 충분합니다. --- ## 수동 설정 (개발자용) 이미지 업로드 실패 시 직접 설정할 수 있습니다: ### 1단계: Cloudflare 로그인 ```bash npx wrangler login ``` ### 2단계: R2 버킷 생성 ```bash npx wrangler r2 bucket create {clinic-name}-uploads ``` ### 3단계: wrangler.toml 확인 ```toml [[r2_buckets]] binding = "BUCKET" bucket_name = "clinic-uploads" # 위 버킷명 ``` ### 4단계: 배포 ```bash npm run deploy ``` --- ## R2 파일 관리 (CLI) 에이전트 없이 직접 관리할 때: ```bash # 버킷의 파일 목록 조회 npx wrangler r2 object list {bucket-name} # 특정 파일 다운로드 npx wrangler r2 object get {bucket-name}/staff/1/profile.jpg --file ./profile.jpg # 파일 업로드 npx wrangler r2 object put {bucket-name}/gallery/photo.jpg --file ./photo.jpg # 파일 삭제 npx wrangler r2 object delete {bucket-name}/staff/1/old.jpg ``` --- ## 문제 해결 | 상황 | 해결 | |------|------| | **이미지 업로드 실패** | "에이전트에게 R2 설정 확인해줘" 요청 | | **"R2 bucket not found"** | `npx wrangler r2 bucket list` → 버킷 생성 | | **이미지가 프로덕션에 안 보임** | `npm run deploy` 실행 | --- ## 관련 문서 - **[Cloudflare 설정](/guide#cloudflare-setup)** — R2와 D1 초기 설정 - **[배포 가이드](/guide#deployment-workflow)** — 이미지 업로드 후 배포
Clinic-OS 시작하기 가격 안내 보기