# Cloudflare R2

> Manage Cloudflare R2 buckets, lifecycle, and signed URLs. Use for low-egress object storage and media delivery.

- Skill: `majiayu000/cloudflare-r2-6` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/cloudflare-r2-6`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/cloudflare-r2-6/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- License: MIT
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/cloudflare-r2-6

---


# Cloudflare R2

Use S3-compatible object storage without egress fees.

## Setup

```bash
# Create bucket
npx wrangler r2 bucket create app-assets

# List buckets
npx wrangler r2 bucket list

# Upload object
npx wrangler r2 object put app-assets/logo.png --file ./logo.png
```

## S3-Compatible Access

- Generate R2 API tokens with least privilege.
- Use endpoint format: `https://<accountid>.r2.cloudflarestorage.com`.
- Configure lifecycle rules for archive/delete.

## Best Practices

- Use short-lived signed URLs for private content.
- Store user uploads in tenant-specific prefixes.
- Enable object versioning for recovery-critical buckets.

## Related Skills

- [cloudflare-workers](../cloudflare-workers/) - Signed URL generation
- [object-storage](../../storage/object-storage/) - Storage patterns

