인증 방식
🔑 API Key
요금
월 10GB·100만 작업 무료, 이후 GB당 $0.015
Base URL
[account].r2.cloudflarestorage.com
태그
스토리지, R2
서비스 소개
Cloudflare R2는 S3 호환 오브젝트 스토리지로, AWS S3와 달리 데이터 전송 비용(이그레스 비용)이 $0입니다. S3 SDK를 그대로 사용할 수 있어 마이그레이션이 쉽습니다. 월 10GB 무료, 클래스 A 작업 100만 건 무료를 제공합니다.
🚀 시작하기
- 1
Cloudflare 계정 가입
dash.cloudflare.com → 무료 계정 생성
- 2
R2 버킷 생성
R2 Object Storage → Create bucket → 이름 지정
- 3
API 토큰 발급
R2 → Manage R2 API tokens → Create API token → 버킷 권한 설정
- 4
S3 SDK 연결
AWS SDK를 그대로 사용, endpoint만 변경
💡 코드 예제
JavaScriptNode.js (S3 SDK 재사용)
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'
import { getSignedUrl } from '@aws-sdk/s3-request-presigner'
// AWS S3와 동일한 SDK, endpoint만 변경!
const r2 = new S3Client({
region: 'auto',
endpoint: `https://${process.env.CLOUDFLARE_ACCOUNT_ID}.r2.cloudflarestorage.com`,
credentials: {
accessKeyId: process.env.R2_ACCESS_KEY_ID!,
secretAccessKey: process.env.R2_SECRET_ACCESS_KEY!,
},
})
// Presigned URL (AWS S3와 동일)
const url = await getSignedUrl(r2, new PutObjectCommand({
Bucket: process.env.R2_BUCKET_NAME!,
Key: 'images/photo.jpg',
ContentType: 'image/jpeg',
}), { expiresIn: 300 })
// 퍼블릭 도메인 설정 후 접근
// https://[custom-domain]/images/photo.jpg