Skip to content
Cloudflare Docs
Search
Product directory
Learning paths
Status
Support
Log in
GitHub
Twitter
YouTube
Select theme
Dark
Light
Auto
R2
Overview
Get started
Data Migration
Overview
Super Slurper
Sippy
Buckets
Overview
Create new buckets
Public buckets
Configure CORS
Event notifications
Object lifecycles
Storage classes
Objects
Overview
Multipart upload
Upload objects
Download objects
Delete objects
API
S3
S3 API compatibility
Authentication
Extensions
Presigned URLs
Workers API
Use R2 from Workers
Use the R2 multipart API from Workers
Workers API reference
Examples
Overview
Multi-cloud setup ↗
Authenticate against R2 API using auth tokens
AWS
aws CLI
aws-sdk-go
aws-sdk-js
aws-sdk-js-v3
aws-sdk-net
aws-sdk-php
aws-sdk-ruby
aws4fetch
boto3
Configure custom headers
Expose an R2 bucket to the Internet via a Worker
Log and store upload events in R2 with event notifications
Mastodon
Postman
Protect an R2 Bucket with Cloudflare Access
rclone
Terraform
Terraform (AWS)
Use the Cache API
Tutorials
Demos and architectures
Platform
Choose a storage product ↗
Audit Logs
Changelog
Limits
Metrics and analytics
Reference
Consistency model
Data location
Data security
Durability
Unicode interoperability
Wrangler commands ↗
Pricing
Product directory
Learning paths
Status
Support
Log in
GitHub
Twitter
YouTube
Select theme
Dark
Light
Auto
Products
…
R2
API
S3
S3
S3 API compatibility
Extensions
Presigned URLs
Authentication
Cloudflare Dashboard
Discord
Community
Learning Center
Support Portal