ComparisonsCloudflareObject storage and the S3 API

Cloudflare R2 vs Naijacloud object storage: which should I use?

If you are serving public files to a worldwide audience, R2 is very hard to beat and we will not pretend otherwise: storage is $0.015 per GB-month, egress is free, and there is a standing free tier of 10 GB with a million Class A and ten million Class B operations a month. Naijacloud object storage is S3-compatible buckets we operate per region, with versioning, lifecycle rules and CORS, free inside the region and billed in Naira. The case for ours is location and proximity: the bucket sits in Port Harcourt in the same region as the container that reads it, so in-region traffic is not charged and Nigerian data stays in Nigeria. The case for R2 is that egress anywhere costs nothing, which is a genuinely different economic model.

Free egress is R2’s whole argument and it is a strong one. The reason object storage gets expensive elsewhere is almost never the storage — it is the bandwidth out. R2 removes that line entirely, which for a public media library, a downloads endpoint or anything fronted by a CDN is decisive.

What R2 charges instead is operations: $4.50 per million Class A (writes, listings, multipart creation) and $0.36 per million Class B (reads). A workload that writes many small objects — per-request logs, thumbnails, event files — pays there rather than on egress, and it is worth doing that arithmetic before assuming R2 is free.

Our side is priced the ordinary way, in Naira, and transfer inside a region is not charged at all. For the common shape — an application in af-west reading and writing its own bucket in af-west — that means the traffic that dominates most applications costs nothing on either platform, and the difference is where the bytes sit and who invoices you.

Where we are behind: R2 is a globally distributed object store in front of Cloudflare’s network, with a CDN on the same account and a very long operating history. Ours is a distributed store we run ourselves, per region, with no CDN in front of the bucket by default. For public assets served worldwide that is a real gap.

Where we are ahead: the bucket can be in Nigeria. R2 objects live in Cloudflare’s network with a location hint at best, so "this file stays in the country" is a claim R2 is not built to make, and one af-west is.

Both speak the S3 API, so the migration is rclone or the AWS CLI in either direction, and application code changes an endpoint and a credential rather than a library.

Platform comparison

Scored out of five on what actually changes your day.

What you need
Naijacloud
Cloudflare

Cost of egress to the public internet

Naijacloud

3/5

Free inside the region. Egress out of the region is metered in Naira, so a public download-heavy workload does cost money.

Cloudflare

5/5

Free, everywhere, with no allowance to exceed. This is the reason R2 exists and nothing here matches it.

Where the objects physically live

Naijacloud

5/5

In the region you chose. af-west buckets are in Port Harcourt, which is the only thing that answers a Nigerian residency requirement.

Cloudflare

2/5

Cloudflare’s network, with a location hint at creation. Not designed to guarantee a country.

S3 API compatibility

Naijacloud

4/5

S3-compatible: the AWS SDKs, the CLI and rclone work, including range reads, virtual-host addressing and conditional requests.

Cloudflare

5/5

S3-compatible and very widely exercised, plus a Workers binding that skips HTTP entirely.

Operation pricing

Naijacloud

4/5

No separate per-operation charge; you are billed for what you store and what leaves the region.

Cloudflare

3/5

$4.50 per million Class A and $0.36 per million Class B. A write-heavy workload of small objects pays here.

Serving public assets worldwide

Naijacloud

3/5

Buckets are per region with no CDN in front by default. You would put one there yourself.

Cloudflare

5/5

It is already inside the world’s largest CDN, on the same account, with cache rules beside it.

Reading it from your application

Naijacloud

5/5

The app and the bucket are in the same region on a private path, and that traffic is not charged.

Cloudflare

4/5

Free egress means this is cheap too, but the bucket is not in a region your container is also in.

Versioning, lifecycle rules and CORS

Naijacloud

4/5

All three, configurable per bucket from the dashboard or the API.

Cloudflare

4/5

Versioning, lifecycle rules and CORS, plus infrequent-access storage at $0.01 per GB-month.

Frequently asked

For a public, download-heavy workload served worldwide, you probably would not — R2 is the better economic answer and we would rather say that than argue against arithmetic. Where ours wins is when the reader is your own application in the same region, because that traffic is not charged either, and when the bytes have to stay in Nigeria.

Try it against your own workload

Deploy one service from a Git repo in Port Harcourt and compare the numbers yourself. Free tier, no card, no FX.