Cloudflare R2 Setup
Connect your Cloudflare R2 bucket to Snipish for unlimited screenshot storage with zero egress fees.
Prerequisites
- A Cloudflare account (free tier works)
- Access to the Cloudflare dashboard
Step 1: Create an R2 Bucket
- Go to the Cloudflare R2 dashboard
- Click Create bucket
- Enter a bucket name (e.g.,
snipish-screenshots) - Choose a location hint (automatic is fine for most users)
- Click Create bucket
Step 2: Configure CORS
In your bucket settings, add a CORS policy to allow Snipish to upload files:
[
{
"AllowedOrigins": ["https://snipish.app"],
"AllowedMethods": ["GET", "PUT", "HEAD"],
"AllowedHeaders": ["*"],
"MaxAgeSeconds": 3600
}
]Step 3: Generate API Credentials
- Go to R2 → Manage R2 API Tokens
- Click Create API token
- Set permissions to Object Read & Write
- Scope it to your bucket (e.g.,
snipish-screenshots) - Click Create API Token
- Copy the Access Key ID and Secret Access Key
Warning: Save your Secret Access Key immediately — Cloudflare will only show it once.
Step 4: Configure in Snipish
- Go to Settings → Storage in Snipish
- Click Connect Your Own Bucket
- Select Cloudflare R2 as the provider
- Enter your Account ID (found in the R2 dashboard overview)
- Enter the Bucket Name
- Paste your Access Key ID and Secret Access Key
- Click Validate & Connect
Step 5: Verify
Upload a test screenshot. Check your R2 bucket in the Cloudflare dashboard — you should see the file appear within seconds.
Troubleshooting
- Validation fails with “Access Denied” — Make sure your API token has Object Read & Write permissions and is scoped to the correct bucket.
- Images don't load after upload — Check that the CORS policy includes your Snipish domain and allows GET requests.
- Account ID not found — Your Account ID is in the R2 overview page in the Cloudflare dashboard sidebar.