Multi-Endpoint S3
Sairo can connect to multiple S3-compatible endpoints simultaneously, letting you browse and manage storage across different providers or regions from one interface.
Adding an endpoint
Section titled “Adding an endpoint”Navigate to the endpoint management page from the admin settings. Click Add endpoint and fill in the connection details:
| Field | Description |
|---|---|
| Name | A human-readable label for this endpoint |
| Endpoint URL | The S3-compatible API URL |
| Access Key | The access key ID for authentication |
| Secret Key | The secret access key |
| Region | The AWS region or equivalent for the endpoint |
| Path Style | Whether to use path-style addressing (endpoint/bucket) instead of virtual-hosted-style (bucket.endpoint) |
Test Connection
Section titled “Test Connection”Before saving, click Test Connection to validate that Sairo can reach the endpoint and authenticate with the provided credentials. The test performs a ListBuckets call and reports success or the specific error encountered.
Default endpoint
Section titled “Default endpoint”The endpoint configured via environment variables (S3_ENDPOINT, S3_ACCESS_KEY, S3_SECRET_KEY) is the default endpoint. It is always present in the endpoint list and cannot be deleted. Its credentials can be edited through the UI or updated via environment variables.
Bucket list
Section titled “Bucket list”The bucket sidebar groups buckets by endpoint. Each endpoint appears as a collapsible section with the endpoint name as the header. Expand or collapse sections to focus on the storage you are working with.
URL routing
Section titled “URL routing”Non-default endpoints use a namespaced URL pattern so that API calls are routed to the correct backend:
/api/e/{endpoint_id}/buckets/{bucket}/objects/...The default endpoint omits the /e/{endpoint_id} segment for backward compatibility:
/api/buckets/{bucket}/objects/...This means existing bookmarks, API integrations, and share links continue to work without modification after adding new endpoints.