Connect storage
Add, import, test, edit, and delete S3-compatible connections in BucketMate for iOS
A connection stores the endpoint, region, and credentials BucketMate uses to reach your storage. You can add one manually or import it from BucketMate on your Mac with a QR code.
Add a connection manually
- On Connections, tap +. If you have no connections yet, tap Add connection manually.
- In Connection, enter a Name.
- Tap Provider and choose your storage service.
- In Server, enter the endpoint and tap Region to choose a region.
- In Credentials, enter the Access key ID and Secret access key. Tap the eye icon to show or hide the secret.
- Tap Test connection. The button turns green and shows Connection successful when BucketMate can reach your storage.
- Tap Connect. BucketMate saves the connection and opens its bucket list.
Tap Setup guide under the provider row to open the provider's documentation for creating access keys.
Connection fields
| Field | How to use it |
|---|---|
| Name | Required. Label shown in the connection list. |
| Provider | Amazon S3, Google Cloud Storage, Cloudflare R2, Backblaze B2, DigitalOcean Spaces, Wasabi, Supabase Storage, Hetzner Object Storage, Tigris, MinIO, or Custom S3-compatible. |
| Endpoint | Optional for Amazon S3. Required for every other provider. |
| Virtual-hosted style | Shown for MinIO and Custom S3-compatible. Puts the bucket name in the hostname instead of the path. See Virtual-hosted style. |
| Region | Pick from the list, search with Search regions, or choose Custom region to type any value. |
| Access key ID | Required. Provider access key, HMAC key, or application key ID. |
| Secret access key | Required. Matching secret for the access key. |
| Load all buckets | Keep on when credentials can list buckets. Turn off to enter bucket names manually. |
BucketMate checks the endpoint when you save:
- Google Cloud Storage endpoints must contain
storage.googleapis.com. - Cloudflare R2 endpoints must contain
r2.cloudflarestorage.com. - Supabase endpoints must contain
supabase.co. - Hetzner endpoints must contain
your-objectstorage.com. - Tigris endpoints must contain
storage.devortigris.dev. - Backblaze B2 endpoints must contain
backblazeb2.com. - DigitalOcean Spaces endpoints must contain
digitaloceanspaces.com. - Wasabi endpoints must contain
wasabisys.com. - MinIO and Custom S3-compatible endpoints must use HTTPS.
http://endpoints are not supported.
If you type an endpoint that matches a known provider, BucketMate switches the Provider to match.
Import from your Mac with a QR code
Quick Connect copies a connection from BucketMate for macOS without typing keys on your phone.
- On your Mac, right-click a connection in BucketMate and choose Show QR for mobile.
- On your iPhone, tap Scan QR code on the empty Connections screen, or open New connection and tap Scan QR code (Import from your Mac).
- Allow camera access when asked.
- Point the camera at the QR code. Tap Turn on light if the room is dark.
- Review the filled-in fields, then tap Test connection and Connect.
Quick Connect does not support AWS SSO connections from the Mac app. If the camera is blocked, BucketMate shows Camera access required with a shortcut to Settings.
Limited bucket permissions
Some credentials can read objects but cannot list all buckets.
- In Buckets, turn off Load all buckets.
- Enter bucket names, one per line or separated by commas.
- Tap Test connection, then Connect.
BucketMate shows only the buckets you entered.
Single-bucket endpoints
If the endpoint already contains a bucket name, BucketMate treats it as a single-bucket connection. Load all buckets turns off and locks, and the Server footer shows Endpoint restricted to single bucket.
| Endpoint style | Example |
|---|---|
| Path-style | https://storage.example.com/my-bucket |
| Virtual-hosted | https://my-bucket.storage.example.com |
Virtual-hosted style
S3 requests can address a bucket in two ways:
| Style | Request URL |
|---|---|
| Path-style | https://storage.example.com/my-bucket/photo.jpg |
| Virtual-hosted style | https://my-bucket.storage.example.com/photo.jpg |
BucketMate uses path-style for custom endpoints by default. Most S3-compatible servers accept it, and it works without wildcard DNS or certificates.
Some providers accept only virtual-hosted style. They reject path-style requests with errors such as SecondLevelDomainForbidden, Please use virtual hosted style, or 403 Access denied. Alibaba Cloud OSS is one example.
To use virtual-hosted style:
- Select MinIO or Custom S3-compatible as the provider.
- Enter the endpoint without a bucket name, such as
https://oss-ap-southeast-1.aliyuncs.com. - Turn on Virtual-hosted style.
- Test the connection.
Turn it on only when your provider requires it:
- Your provider's DNS and TLS certificate must cover
<bucket>.<endpoint host>. Some providers, such as Hetzner, issue certificates that do not cover bucket subdomains, so keep the option off for them. - Bucket names that contain dots may fail over HTTPS because they do not match a wildcard certificate.
Copied object URLs follow the style you choose.
Edit, refresh, or delete a connection
On Connections, swipe left on a connection:
- Edit opens the connection form. Tap Save to apply changes.
- Delete asks for confirmation, then removes the connection from this device.
Touch and hold a connection for Open, Edit, Refresh, and Delete. Refresh opens the bucket list and reloads bucket data from the provider.
You can also tap the pencil icon on a connection's bucket list to edit it. Saving changes clears that connection's cached data.
Free version limit
The free version allows one connection. Adding a second connection, manually or by QR code, shows Trial version limit. Tap Buy now to open the upgrade screen. See BucketMate Pro.