# S3-Compatible Storage Setup Guide

> Connect Blober to S3-compatible storage by entering its endpoint URL. Works with MinIO, Ceph, Storj, Hetzner, Scaleway, self-hosted servers, and local test setups.

The **S3-Compatible** provider connects Blober to storage services that speak the common Amazon S3 protocol operations Blober uses. Instead of picking a named provider, you enter the service's **endpoint URL** and access keys - so a single provider covers the long tail of S3-compatible services, self-hosted servers, and local test setups.

Path format:

```plaintext
bucket-name/path/to/file.ext
```

## Works with

Most services that expose an S3-compatible API for common bucket and object operations. That covers a long tail of services across several categories:

* **Cloud object storage** - Alibaba OSS, Tencent COS, Huawei OBS, IBM COS, Oracle OCI, Google Cloud Storage, Yandex, and more.
* **Object storage specialists** - Storj, IDrive e2, Cubbit, Impossible Cloud, Seagate Lyve Cloud, Synology C2, MEGA S4, Tebi, Tigris, and more.
* **Hosting and VPS storage** - Linode/Akamai, Vultr, OVHcloud, Hetzner, Scaleway, Contabo, Exoscale, IONOS, and more.
* **Self-hosted and open source** - MinIO (the common local-testing server), Ceph / RADOS Gateway, SeaweedFS, Garage, Zenko, Versity Gateway, and more.
* **Enterprise and on-premises** - NetApp StorageGRID, Dell ECS, Cloudian, Pure FlashBlade, Hitachi HCP, Scality, Zadara, and more.
* Any **self-hosted** or **on-premise** S3 server on your own network, or a server on your own machine for **local testing** (e.g. `http://localhost:9000`).

For the full roster with endpoint formats and setup notes, see [The Complete List of S3-Compatible Storage Providers](/kb/articles/s3-compatible-storage-providers-complete-list/).

Compatibility note: S3-compatible does not mean feature-identical to AWS S3. Browse, upload, download, delete, and normal copy workflows are the target; advanced behavior such as object lock, lifecycle policies, server-side copy, checksums, and metadata can differ by provider.

> **Tip**
>
> If a provider already has a dedicated Blober entry (Amazon S3, Wasabi, Cloudflare R2, Backblaze B2, DigitalOcean Spaces, Rabata), use that one - it is preconfigured. Reach for **S3-Compatible** for everything else.

## Capabilities

* ✅ Browse buckets and objects
* ✅ Upload files (including large files)
* ✅ Download files
* ✅ Delete objects
* ✅ Copy/move objects
* ✅ Both addressing styles - virtual-hosted (`https://my-bucket.s3.example.com`) and path-style (`http://localhost:9000/my-bucket`)
* ✅ Single-bucket or full-account access

## Required Credentials

[]()

### Endpoint

Enter your endpoint URL in **one of two fields** - your choice sets the addressing style automatically:

* **Virtual-host endpoint URL** - for virtual-hosted-style S3 addressing, common with hosted providers. The bucket name is added to the hostname as a subdomain (so `https://s3.example.com` becomes `https://my-bucket.s3.example.com`). Enter the host only.
* **Path-style endpoint URL** - for path-style S3 addressing, common with **MinIO, Ceph**, and many self-hosted or local servers. The bucket name is added to the URL path (so `http://localhost:9000` becomes `http://localhost:9000/my-bucket`). Use this if uploads or browsing fail against your own server.

**Include the scheme** (`https://`, or `http://` for a local server) and enter the **host only** - no bucket, no path.

* **Examples:** `https://s3.us-east-1.example.com` (virtual-hosted), `http://localhost:9000` (path-style)

[]()

### Access Key ID

* **Where to find:** Your provider's console, under access keys / service accounts.

[]()

### Secret Access Key

* **Where to find:** Shown once when you create the access key. Store it safely.

## Optional Settings

[]()

### Bucket name

* **Default:** empty (browse every bucket the keys can list)
* Set a single bucket to scope Blober to just that bucket. **Required** if your keys are restricted and cannot list all buckets - a common setup for migration keys.

[]()

### Region

* **Default:** `us-east-1`
* Most S3-compatible servers ignore the region, so the default is usually fine. Set it only if your provider documents a specific region.

[]()

### Storage class

* **Default:** `STANDARD`
* The storage tier for uploaded files. `STANDARD` is the safest default for ordinary S3-compatible uploads. Some providers also offer tiers like `STANDARD_IA` or `GLACIER`, or their own class names - set one only if your provider documents it. Applies when this provider is the destination.

## Setup Examples

### MinIO (self-hosted or local testing)

1. Start MinIO (for a quick local test, the default keys are `minioadmin` / `minioadmin`).
2. In Blober, add an **S3-Compatible** source or destination and enter:

* **Path-style endpoint URL:** `http://localhost:9000` (or your server's URL)
* **Access Key ID** / **Secret Access Key:** your MinIO credentials
* **Bucket:** optional - leave empty to see all buckets

3. Browse to confirm the connection.

### A hosted S3-compatible provider

1. Create access keys in the provider's console.
2. Copy the S3 endpoint URL from their docs (e.g. `https://s3.region.provider.com`).
3. In Blober, put the endpoint in the **Virtual-host endpoint URL** field, enter the keys, and browse.

### Filebase (supports both styles)

Filebase documents both virtual-hosted and path-style S3 addressing [\[1\]](https://filebase.com/docs/s3-api/overview#addressing-styles "Source: filebase.com/docs/s3-api/overview"):

* **Virtual-host endpoint URL:** `https://s3.filebase.io` gives object URLs like `https://<bucket-name>.s3.filebase.io/<object-key>`.
* **Path-style endpoint URL:** `https://s3.filebase.io` gives object URLs like `https://s3.filebase.io/<bucket-name>/<object-key>`.

Use the addressing style your Filebase workflow or toolchain expects; both point at the same S3 service host.

## Troubleshooting

### Uploads or browsing fail on a self-hosted server

Use the **Path-style endpoint URL** field instead of the virtual-host one. MinIO, Ceph, and most on-premise servers require path-style addressing.

### "Access Denied" when browsing buckets

Your keys may be scoped to one bucket and not allowed to list all buckets. Enter that bucket in the **Bucket name** field.

### Connection errors / wrong host

Re-check the **endpoint URL**. It must include the scheme (`https://`, or `http://` for a local server) and be the service host only - no bucket, no object path.

> **Terms Compliance**
>
> Your use of any third-party storage through Blober is subject to that provider's terms of service. See our [Terms of Service](/kb/docs/terms-and-privacy/terms-of-service/) for details.

## External References

* [rclone S3 backend](https://rclone.org/s3/) - reference list of S3-compatible providers, their endpoints, and quirks
* [S3 path-style vs virtual-hosted addressing](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html) - background for the two endpoint fields above
* [Ceph Object Gateway S3 API](https://docs.ceph.com/en/latest/radosgw/s3/) - S3 compatibility reference for a common self-hosted server