Scalable, durable, affordable object storage
Image File
Original HTML

Scalable, durable, affordable object storage

Build stateful applications that read and write data globally, integrate directly with Workers, and scale without infrastructure overhead or surprise storage costs.

Near-infinite scale

Access data from anywhere, create millions of buckets, and write as much data as you need to run your business.

Sleep better

Don't wake up to a huge egress bill overnight: R2 doesn't charge for egress.

S3-compatible APIs

R2 exposes S3 compatible APIs: use your existing tools without a rewrite.

Progressive migration

R2 can sit in front of your legacy object storage provider and progressively copy objects as they are requested, taking the complexity out of managing data migration.

R2 Data Catalog

Use R2's Iceberg-compatible data catalog with your favorite SQL data warehouse to query logs and structured data formats you store in R2.

Part of Cloudflare Workers

Access your R2 buckets directly from your Workers code without having to juggle API keys and SDKs with a native Workers API.

R2 Store anything, serve everywhere

R2 is globally distributed object storage designed for modern applications. Durable, S3-compatible, and tightly integrated with Workers for building data-driven systems without extra infrastructure.

See more

Store application data without egregious egress fees

Store AI datasets and model artifacts

Break free from cloud vendor lock-in

Migration without the risk

Drop-in replacement for existing S3 workflows

Switch your endpoints to R2 and keep using your current tools, SDKs, and pipelines. R2's S3-compatible API makes migration frictionless.

import boto3

s3 = boto3.resource('s3', endpoint_url = 'https://{your-account-id}.r2.cloudflarestorage.com', aws_access_key_id = '{access_key_id}', aws_secret_access_key = '{access_key_secret}')export default { async fetch(request, env) { let key = new URL(request.url).searchParams.get('key'); // Write an object to R2 directly await env.MY_BUCKET.put(key, request.body);

// Fetch an object (or objects!) using the Workers API: const object = await env.MY_BUCKET.get(key); return new Response(object); },};-- Install the iceberg DuckDB extension and load the extension.INSTALL iceberg;LOAD iceberg;

-- Create a DuckDB secret to store Basin Catalog credentials.CREATE SECRET r2_secret ( TYPE ICEBERG, TOKEN '');

-- Attach your Basin CatalogATTACH '' AS prod_analytics_data ( TYPE ICEBERG, ENDPOINT '');

-- Show all available tables.SHOW ALL TABLES;

-- Query your Iceberg table.SELECT * FROM prod_analytics_data.default.user_events;

Character.AI

"

R2 has been the glue behind our multi-cloud architecture for training and processing requests. We are now able to store our training and production data in R2 for access by any cloud, without egress fees, and get the best prices and performance across multiple cloud providers. "

R2 Pricing

Object storage without egress fees. View Storage & Data pricing details

Standard Storage

10 GB-month

$0.015 / GB-month

Standard Class A operations

1 million

$4.50 / million requests

Standard Class B operations

10 million

$0.36 / million requests

Infrequent Access Storage

—

$0.01 / GB-month

Infrequent Access Class A operations

—

$9.00 / million requests

Infrequent Access Class B operations

—

$0.90 / million requests

Infrequent Access Data Retrieval

—

$0.01 / GB

Powerful primitives, seamlessly integrated

Built on systems powering 20% of the Internet, R2 runs on the same infrastructure Cloudflare uses to build Cloudflare. Enterprise-grade reliability, security, and performance are standard.

Build without boundaries

Join thousands of developers who've eliminated infrastructure complexity and deployed globally with Cloudflare. Start building for free — no credit card required.

Class (B2B/B2C)
B2B
Ingest Status
Error
Dedupe hash
6f90c370f9a8df1f8eaa6fa909e91c77
Press Eligible
No
Press Eligible Reason
Drupal Push 422
Source Name
Brandi AI
Image URL
https://www.cloudflare.com/preview.png
Source Node
Content Hash (SHA-256, erste 32 hex)
3a8e79f58c33a652b7dfa0f4bbe76c42