Skip to content

Choosing a provider

OmniOffloader stores your media in cloud object storage. It works with five providers that have their own setup, plus a generic option for any other service that speaks the S3 API.

You choose the provider in OmniOffloader → Settings → Cloud Provider. The form then shows only the fields that provider needs.

Provider Good to know
Cloudflare R2 No fees for downloads (egress). Needs a custom domain or the r2.dev URL to serve files publicly.
Amazon S3 The original. Pair it with Amazon CloudFront for a CDN.
DigitalOcean Spaces Simple pricing and a built-in CDN you can switch on per Space.
Backblaze B2 Low storage price. The bucket must be set to Public.
Wasabi Flat storage price with no download fees.
Any S3-Compatible Storage MinIO, Storj, OVHcloud, Linode, Scaleway and others. You enter the endpoint and region yourself.

Every provider needs an access key, a secret and a bucket. Some also need an endpoint URL or a region.

Field R2 S3 Spaces B2 Wasabi S3-Compatible
Access key (ID) ✓ ✓ ✓ ✓ ✓ ✓
Secret key ✓ ✓ ✓ ✓ ✓ ✓
Endpoint URL ✓ — ✓ ✓ — ✓
Region — ✓ ✓ ✓ ✓ ✓
Bucket name ✓ ✓ ✓ ✓ ✓ ✓
Custom Domain / CDN URL ✓ optional optional optional optional optional
Provider Label — — — — — optional
Use Path-Style Endpoint — — — — — optional

The labels differ a little per provider. For example, Backblaze calls them Application Key ID and Application Key, and DigitalOcean calls them Spaces Access Key and Spaces Secret Key. Each provider page lists the exact labels.

This is the address your visitors load media from, for example https://media.yourdomain.com. OmniOffloader rewrites your image and file URLs to start with it.

It matters for two reasons:

  • Your files must be publicly reachable. Most buckets are private by default. A custom domain or CDN in front of the bucket is usually how you make them public.
  • Speed. A CDN caches your files close to your visitors.

Cloudflare R2 has no public address at all until you connect a custom domain or turn on the public r2.dev URL. That is why the field is required for R2.

For the other providers the field is optional. If you leave it empty, OmniOffloader uses the provider’s default public address for your bucket. That address only works if the bucket allows public reads.

After you fill in the fields, click Test Connection. It checks the values currently in the form, so you can test before you save.

  • Connected: OmniOffloader reached your bucket with these keys.
  • Not connected, with Connection failed: …: the text after the colon is the error from your provider. Most often the keys are wrong, the key has no access to the bucket, or the bucket name, region or endpoint has a typo.

If another site already uses the bucket folder, the test still succeeds but shows a warning. See Sharing one bucket between sites.

Each offloaded attachment remembers the provider and bucket it was offloaded to.

  • Another provider: media you already offloaded keeps loading from the old provider, through its saved settings (keep them). New uploads go to the new provider. Move the old media over with Tools → Move Media to the Current Folder or wp omnioffloader move.
  • Another bucket with the same provider: a provider keeps one bucket in its settings, so media in the old bucket could no longer load or be brought back. The bucket can’t be changed while media is offloaded to it: bring it all back first (Bring Back), then change the bucket and offload again. Settings warns under the Bucket Name field before you save.
  • The bucket’s endpoint or region: these say where the bucket is, so they are locked the same way while media is offloaded there. A region may only contain letters, numbers and dashes, for example eu-central-1.

Want to keep your keys out of the database? See Credentials in wp-config.php.