PinMe Worker R2 스토리지
PinMe로 배포한 Cloudflare Worker에서 env.R2 바인딩만으로 안전한 파일 업로드·다운로드·삭제 API를 만들도록 안내하는 스킬.
웹·API 연동중급★ 3,732⑂ 274AI 점수 8/10마지막 업데이트: 2026. 7. 25.
무엇을 해주나
- PinMe가 모든 Worker에 자동 주입하는
env.R2바인딩을 전제로, R2 객체 스토리지 코드를 작성하게 합니다. 자격증명이나 Wrangler 설정을 직접 만지지 않습니다. - 업로드(스트리밍), 다운로드(Range/조건부 요청), HEAD 메타데이터, 삭제, 소유자 프리픽스 목록 조회까지 라우트별 TypeScript 예시를 제공합니다.
- "인증 → 인가 → 크기·MIME 정책 검증 → 서버 생성 키 → env.R2 호출 → 응답 정제" 순서를 모든 라우트에 강제합니다.
- R2와 D1의 역할 분담(본문은 R2, 검색용 메타데이터는 D1)과 pending→ready 상태 전이 보상 패턴을 알려줍니다.
- 400/411/412/413/416 등 상태 코드 규약과 안티패턴 표로 잘못된 구현을 차단합니다.
이런 분께 추천
- PinMe로 Cloudflare Worker 백엔드를 배포하며 파일·이미지 업로드 기능이 필요한 개발자
- 클라이언트가 보낸 객체 키·userId를 그대로 믿는 취약한 업로드 API를 정리하고 싶은 분
- R2와 D1을 함께 쓰면서 트랜잭션이 없어 생기는 정합성 문제를 정돈하고 싶은 분
활용 예시
- "이미지 업로드 엔드포인트 만들어줘" → Content-Length 사전 검사, MIME 허용목록,
request.body를 그대로env.R2.put에 스트리밍하고 실제 저장 크기까지 재검증하는 핸들러 생성. - "동영상 부분 재생이 안 돼" → Range 헤더 검증, 206 응답과
content-range/accept-ranges헤더, 조건부 실패 시 412 처리를 추가. - "사용자 파일 목록 API" → 인증된 사용자 프리픽스로만
list()를 호출하고page.truncated기준으로 커서 페이지네이션 구현.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/glitternetwork/pinme/HEAD/skills/pinme-r2/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 glitternetwork/pinme 의 skills/pinme-r2 폴더를 내 ~/.claude/skills/pinme-r2/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/glitternetwork/pinme.git && mkdir -p ~/.claude/skills && cp -r pinme/skills/pinme-r2 ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 엽니다.
- 저장소를 클론합니다:
git clone https://github.com/glitternetwork/pinme.git - 스킬 폴더를 만듭니다:
mkdir -p ~/.claude/skills - 스킬을 복사합니다:
cp -r pinme/skills/pinme-r2 ~/.claude/skills/ ~/.claude/skills/pinme-r2/SKILL.md파일이 있는지 확인합니다.- Claude Code를 다시 시작하고, PinMe Worker 프로젝트 안에서 "R2에 파일 업로드 라우트 만들어줘"처럼 요청하면 스킬이 발동합니다.
- 이 스킬은 PinMe로 배포되는 Worker(
pinme save/pinme update-worker) 환경을 전제로 하므로, PinMe CLI를 먼저 설치해 두면 좋습니다.
GitHub에서 원본 보기 ↗라이선스: MIT