S3-Compatible Object Storage in Europe: Prices and Features (2026)

Compare European S3-compatible storage by total cost, EU location, versioning and recovery needs, with current DanubeData, R2, B2 and Hetzner guidance.

Adrian Silaghi

9 min read

4,371 views

s3object-storagecloudflare-r2backblaze-b2hetznereuropean-cloudbackups
S3-Compatible Object Storage in Europe: Prices and Features (2026)

S3-compatible storage lets you keep application uploads, backups and downloadable files outside a server's filesystem while continuing to use familiar tools. The important comparison is the whole workload: stored bytes, object count, downloads, requests, retention and the features your application uses.

This guide compares European hosting options and providers with EU locations. It also distinguishes ordinary region selection from jurisdiction restrictions and S3 API compatibility from a promise that every AWS feature is supported. We operate DanubeData, which is included in the comparison.

Last reviewed: 2 November 2026. Prices are public list-price references in their original currencies, before applicable taxes unless stated otherwise. Provider billing units differ: a decimal TB is not a TiB. These are documentation checks, not throughput or restore benchmarks.

Price comparison: include the charging model

ProviderStorage price referenceTraffic and other chargesLocation/quote check
DanubeData€5.49/month per bucket holding data; 1 TB included1 TB outbound included; storage and traffic overage belowGermany; excludes VAT
HetznerAccount base fee with included storage quotaAccount-wide quota and overage; active empty buckets still trigger base feeGermany or Finland; check current localized quote
Cloudflare R2 Standard$0.015/GB-monthInternet egress free; operations billed, with a free allowanceChoose EU jurisdiction when required
Backblaze B2Starts at $6.95/TB/monthFree egress up to 3× average stored data; excess/partner terms applySelect the appropriate data region
Scaleway Standard€0.00803/GB-month One Zone; €0.01606 Multi-AZ75 GB egress free, then €0.01/GB; requests includedSelect region and redundancy class
OVHcloudVaries by zone and storage classCurrent Standard tables list external transfer/API requests free; cold classes differUse the regional currency and selected class
Amazon S3Region and storage-class quoteRequests, retrieval, transfer and optional features can add chargesSelect the exact EU region
Google Cloud StorageRegion and storage-class quoteOperations, retrieval and transfer can add chargesCheck XML interoperability rather than assume full S3 parity

Sources: DanubeData pricing, Hetzner billing model, R2 rates, B2 rates, Scaleway rates, OVHcloud rates, S3 pricing and Cloud Storage pricing. A free trial or signup credit is not a permanent storage price.

Understanding the costs

Storage, downloads and requests are separate

A backup that is rarely restored and a file library downloaded repeatedly can have the same stored size and very different bills. List monthly average storage, outbound traffic and read/write requests separately. For backups, include full recovery traffic, not just the usual incremental uploads.

Small objects can make requests and metadata significant. Version history, incomplete multipart uploads and retention policies can increase stored bytes beyond the visible current files. A CDN can change origin traffic and request patterns; check its own bill and contractual conditions too.

Base fees change small-workload comparisons

DanubeData charges per bucket holding data; Hetzner documents an account-wide base fee for at least one active bucket, even empty. Those are different models. Ten small buckets do not necessarily cost the same as one bucket with ten prefixes. Compare the structure your access policies and application actually require.

DanubeData examples with explicit assumptions

The current rate is €5.49/month per non-empty bucket, including 1 TB storage and 1 TB outbound traffic. Empty buckets are free. Extra storage is €5.49/TB/month and extra outbound traffic €1/TB; uploads and API requests have no fee. Billing is hourly and prices exclude VAT.

  • One bucket holding 100 GB throughout a full billing month and sending 200 GB remains within both included allowances: base charge €5.49.
  • One bucket averaging 2 TB stored and sending 2 TB in the same period: €5.49 base + €5.49 extra storage + €1 extra outbound = €11.98.
  • Two non-empty buckets each within their own allowances have two base fees: €10.98.

These are simplified full-month examples at the displayed rates, not invoices or performance measurements. Hourly usage and billing-period allocation affect an actual bill.

Provider details

Cloudflare R2

R2 is a candidate when repeated downloads would otherwise dominate cost. Free egress does not make the whole service free: stored data and operation classes still matter. Standard and Infrequent Access have different retrieval and request terms.

The old claim that R2 only offers location hints is incomplete. R2 supports EU jurisdiction restrictions, distinct from placement hints. Select the jurisdiction at creation and use the matching endpoint; it cannot be changed on an existing bucket. Review the rest of the application data flow separately.

Fit: download-heavy assets or applications already using Cloudflare. Check: API operations and features; the compatibility list supports lifecycle configuration but does not implement PutBucketVersioning. R2 bucket locks are not a substitute for assuming ordinary S3 versioning exists.

Backblaze B2

B2 is worth including for backup and archive workloads. Its current advertised starting rate is $6.95/TB/month, rather than the older $6 rate. Egress up to three times average monthly stored data is included; additional downloads are ordinarily $0.01/GB, with separate partner exemptions. Check the applicable region and rate terms.

Fit: backup software with B2 support and workloads whose storage/restore pattern suits the rates. Check: data-region selection, object history, retention and the exact S3-compatible API features your software needs. Do not assume every AWS administrative API is available.

Hetzner Object Storage

Hetzner documents endpoints in Falkenstein, Nuremberg and Helsinki. Its account-wide storage and traffic allowance can be useful when several buckets share a budget. Confirm the current price in the correct currency and VAT locale rather than copying an old rounded per-TB figure.

Versioning and lifecycle policies are supported. See the versioning guide and bucket/lifecycle FAQ. Configuration changes can take time to propagate, so follow the provider's stated waiting period before testing writes.

Fit: EU backup or application storage, including workloads already hosted at Hetzner. Check: the supported-actions exceptions, credentials, encryption and any public custom-domain requirements.

DanubeData Object Storage

DanubeData offers German-hosted storage with versioning, lifecycle expiration, CORS, bucket policies and pre-signed URLs. Existing application resources can be managed in the same platform. This convenience does not imply zero latency, a private route for every connection or full AWS feature parity.

Fit: application files and backup targets when the per-bucket allowance and Germany location suit the workload. Check: bucket count, growth, version retention and application behaviour with the endpoint. Review the current storage features and estimate a bucket.

Scaleway, OVHcloud, AWS and Google Cloud

Scaleway and OVHcloud offer several location and redundancy/storage-class choices; choose the actual class before comparing a price. A single-zone hot-storage row is not equivalent to a multi-zone row or a cold archive with retrieval fees.

AWS S3 can be the appropriate choice when an application depends on its broader integrations or precise S3 semantics. Keep the region, request mix, transfer path and lifecycle transitions in the quote. Google Cloud Storage is a related object-storage option, but its XML API interoperability should not be described as blanket compatibility with every S3 operation or SDK feature.

A compatibility matrix you can verify

Documentation status checked on 2 November 2026; this is not a runtime compatibility test:

ProviderObject versioningLifecycle configurationPrimary reference
AWS S3SupportedSupportedVersioning and lifecycle
Cloudflare R2S3 PutBucketVersioning not implementedSupported, with documented API differencesS3 operation matrix
HetznerSupportedSupportedVersioning and lifecycle behaviour
DanubeDataSupportedExpiration rules supportedStorage features

These feature names do not imply identical retention, permissions or API coverage. Check the operations your software uses:

CapabilityWhat to check before committing
Core object operationsUpload, download, overwrite, delete, metadata and list pagination with your SDK
Large filesMultipart upload, retry, interrupted-upload cleanup and download verification
VersioningEnable it in a scratch bucket, overwrite an object and retrieve the earlier version
LifecycleCurrent and noncurrent expiration behaviour, plus incomplete multipart cleanup
CORS and signed URLsAllowed origins/methods, expiry, browser upload and unauthorized requests
Retention and locksSupported API, creation-time requirements, permissions and deletion protection
EncryptionSupported modes and who manages the keys; client-side encryption requirements
Application integrationsEvents, IAM, policies, replication and other provider-specific services

Compatibility is a set of operations, not a single yes/no label. This checklist is not a claim that we ran the tests on every provider. For a concrete tool setup, use the existing rclone S3 guide.

Choosing by workload

  • Mostly stored backups: compare storage and retention, then price a full restore. Test recovery before deleting the previous backup.
  • Frequent public downloads: model egress and operation charges; include CDN behaviour and costs.
  • Many small isolated buckets: compare per-bucket and account-wide minimums.
  • Strict location requirements: select a documented region or jurisdiction and review backups, metadata, processors and application integrations.
  • An existing platform: a shared console may simplify operations, but test the actual data path and recovery process.

There is no universal cheapest or fastest provider. A low storage rate can lose its advantage under frequent reads, a minimum commitment or a required feature that costs extra.

Migration without assuming an endpoint change is enough

  1. Inventory buckets, object counts and sizes, versions, policies, CORS, lifecycle rules and applications using signed URLs.
  2. Create a restricted destination credential and copy a representative sample. Validate content, metadata and application reads/writes.
  3. Plan how versions and retention are handled; an ordinary copy of current objects may not reproduce historical versions or policies.
  4. Copy the bulk data, then use a write freeze or a defined catch-up process for changes during the copy.
  5. Check counts and independent hashes where possible. Multipart ETags are not universally whole-file MD5 checksums.
  6. Switch the application configuration and monitor errors. Retain the original until verification and the agreed rollback window finish.

For backup use, continue with the Linux server backup guide. A copied repository is only useful if you can unlock and restore it with the keys and tooling available during an incident.

Frequently asked questions

Can I reuse an AWS SDK?

Usually for supported operations, with the provider's endpoint, credentials, region/signature settings and sometimes addressing-style changes. Test the SDK version and feature calls you use; do not assume an endpoint change covers IAM, events or every checksum mode.

Does an EU bucket make my application GDPR compliant?

Location is one requirement you may have. Your own purposes, access controls, retention, processor agreements and transfers through other services still need review. Provider headquarters alone does not answer those questions.

Is versioning a backup?

It helps recover overwritten objects, but permissions or retention changes can still expose versions to deletion. Keep an independent recovery plan and verify it with a restore.

Estimate DanubeData S3-compatible storage for your bucket count and traffic, then test it with a representative workload before migrating production data.

Browse all articles

Ready to get started?

Deploy your infrastructure in minutes with DanubeData's managed services.