Storage · · 9 min read

European alternatives to Vercel Blob for user uploads in 2026

Where to keep avatars, documents and other files your users upload once you leave Vercel Blob: S3-compatible stores in Europe, what they cost and how the upload flow changes.

To replace Vercel Blob for user uploads, pick an S3-compatible object store run in Europe and let your server sign each upload. Hetzner Object Storage is the low-cost default for moderate traffic, Impossible Cloud and OVHcloud list no egress fees, which helps when users download a lot, and Exoscale fits files that must sit in a specific European zone. Bunny Storage pairs well with its own CDN for public images.

Vercel Blob can already keep a store in a European region such as Frankfurt or Paris, but the contract stays with Vercel Inc., a US company. If the company is what your customer asks about, picking a region won't settle it.

Upload storage at a glance

ProviderStorage priceEgressLocations in EuropeMain gap
Hetzner€6.49 a month excl. VAT, with 1 TB of storage and 1 TB of traffic1 TB includedFalkenstein, Nuremberg, HelsinkiThree locations only
Impossible Cloud€7.99 per TB a monthNo egress or API feesEurope, sites not statedNot documented
OVHcloudSee its price listNo ingress, egress or API fees listedSeveral regionsMany options to compare
ExoscalePer GiB per hour, see its price listInbound free8 European zonesOutbound traffic billed
Bunny StorageFrom $0.01 per GB a month per region, $1 minimumFree to Bunny CDN, delivery billed by the CDNFrankfurt, London, Madrid, Prague, StockholmS3 API still in public preview
Eurobase500 MiB on Free, more on paid plans25 GiB of file transfer a month on FreeEuropean infrastructureYour app gets no credentials for the buckets
Vercel$0.023 per GB a month$0.05 per GBDublin, Frankfurt, London, Paris, StockholmUS company

Prices are from each provider's own page, checked on 9 and 10 November 2026. Vercel's rates are the ones it shows for its Washington, D.C. region.

What to check before you move uploads

  • Who holds the contract. A Frankfurt bucket from a US company and a Frankfurt bucket from a European one are different answers for a customer who asks about the CLOUD Act, as EU region vs EU company explains.
  • Direct browser uploads. For files over 4.5 MB, Vercel Blob uses client uploads that go from the browser straight to the store, secured by a token exchange with your server. With S3 you get the same effect from a presigned URL, and the bucket needs a CORS rule that allows your domain. Hetzner, OVHcloud and Exoscale each publish a guide for setting CORS.
  • What downloads cost. A profile photo is uploaded once and viewed many times. A store with egress included or free keeps the bill tied to what you store.
  • Public and private files. Vercel Blob has public and private stores. On S3 you decide per bucket or per object, and private files are served through signed links.
  • Where the files are served from. Vercel caches blobs on its CDN for up to a month by default. A plain bucket serves from one location unless you put a CDN in front.

1. Hetzner Object Storage

The German host's S3-compatible storage costs a base €6.49 a month excl. VAT, billed by the hour, and that base covers 1 TB of storage and 1 TB of outbound traffic. You can create up to 100 buckets in Falkenstein, Nuremberg or Helsinki.

  • Best for: a SaaS app with a few hundred gigabytes of uploads and normal traffic.
  • Price: €6.49 a month excl. VAT, with storage and traffic over the included 1 TB charged extra.
  • What it lacks: locations outside Germany and Finland.

2. Impossible Cloud

S3-compatible storage in European data centres, at one price per terabyte. Egress and API calls aren't charged, so an image that's viewed a million times costs the same to keep as one that's never opened.

  • Best for: apps whose users download much more than they upload, such as media or shared documents.
  • Price: €7.99 per TB a month, pay as you go. There's one storage class, always hot, with no tiers to pick between.

3. OVHcloud Object Storage

The French cloud's S3-compatible storage comes in several classes, with a 99.99% availability SLA listed for its main classes. The product page says there are no fees for ingress, egress or API calls, and new customers get US$200 of credits.

  • Best for: teams that already use OVHcloud for servers or databases and want uploads in the same account.
  • Price: by stored capacity and storage class, see its price list.
  • What it lacks: a single small plan, so estimating a tiny project takes some reading.

4. Exoscale Object Storage

S3-compatible storage across 8 European zones, with versioning, object lock, bucket replication between zones and a 99.95% SLA. You pay for capacity and for outbound traffic leaving its datacenters, and inbound traffic is free.

  • Best for: uploads that must stay in a named country, or that need a copy in a second zone.
  • Price: by GiB per hour for the standard class, see its price list.

5. Bunny Storage

Storage from bunny.net, run by BunnyWay d.o.o. in Ljubljana, Slovenia. It's priced per gigabyte and per region, and each extra replication region adds $0.005 per GB. Traffic from storage to Bunny CDN is free, so public images go out through the CDN and are billed as CDN bandwidth. Its S3-compatible API is in public preview: you can only switch it on when you create a new storage zone, presigned URLs work, and the S3 endpoint accepts requests from any origin, with no CORS rules of your own.

  • Best for: public images and media that should load fast for visitors far from the bucket.
  • Price: HDD tier from $0.01 per GB a month for each region, with a $1 monthly minimum and a 14-day free trial.
  • What it lacks: a finished S3 API. The preview caps each zone at 500 requests a second, and you control CORS only by putting a Bunny CDN pull zone in front.

6. Eurobase

Eurobase hosts the app that handles the uploads. Next.js and other frameworks run on V8 isolates, and servers in Node.js, Python, Go and other languages run as containers, on European infrastructure run by Scaleway, a French provider. The business behind it is registered in Warsaw, Poland.

Eurobase Storage gives each project public or private buckets, but they hold files you manage yourself, and your app gets no credentials for them. For files your users upload, keep the app on Eurobase and point it at one of the stores above, or at Supabase Storage, which works from both V8 isolates and containers. From a V8 isolate, your code reaches the store over HTTPS with fetch().

  • Best for: running the upload route and the rest of the app in Europe at a flat price, alongside an S3 store you choose.
  • Price: Free, then €10 a month for Starter or €20 a month for Pro, + VAT, covering every project in the workspace. There are no usage charges today: anything over a limit is refused, apps on V8 isolates and Functions stop until the monthly reset, and containers and static sites go on serving.
  • What it lacks: app access to its own buckets, preview deployments, and managed Postgres or Redis. ISO 27001 and SOC 2 certification are still in progress.

Moving off Vercel Blob

  1. Create a bucket in the European region you want, plus an access key limited to that bucket.
  2. Add a CORS rule that allows PUT from your app's domain, if users upload from the browser.
  3. Replace the @vercel/blob put() and upload() calls with a route that checks the user, then returns a presigned PUT URL for the S3 bucket.
  4. Copy existing files: list your blobs, download each one and write it to the new bucket under the same path.
  5. Update stored URLs in your database, or serve old paths through a redirect while you switch.
  6. Remove the BLOB_READ_WRITE_TOKEN variable once nothing reads from the old store.

If the app is moving too, Move from Vercel covers the hosting side, and Eurobase vs Vercel lists what carries over.

Frequently asked questions

Can I keep Vercel Blob and just choose a European region?

You can create a Blob store in Dublin, Frankfurt, London, Paris or Stockholm. The files then sit in Europe, but Vercel Inc. still runs the service under terms governed by California law. That's fine for latency, and often not enough for a customer who asks for an EU provider.

Is there an S3 API equivalent of Vercel Blob's client upload?

Yes. Your server signs a presigned PUT URL for one object and returns it to the browser, which uploads straight to the bucket. The browser never sees your keys, and the file doesn't pass through your app, so large uploads don't hit your function's request size.

What about Cloudflare R2 with the EU jurisdiction?

R2 can pin a bucket to an EU jurisdiction, which keeps objects stored in the EU. Cloudflare is a US company, so it answers the location question, not the company one.

Which option is cheapest for user uploads?

For up to 1 TB with ordinary traffic, Hetzner's €6.49 base covers both storage and downloads. If downloads are heavy, Impossible Cloud or OVHcloud, with no egress fees listed, can come out lower. For a broader comparison of stores, see best S3-compatible object storage in Europe.

Do I need to change my Next.js host too?

No. Any host can call an S3 store. If you also want the app itself in Europe, see European alternatives to Vercel and Next.js hosting in Europe.

Sources

Deploy your app in Europe

Sign up