Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion apps/docs/content/guides/object-storage-integration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ When you create an Object Storage service, Zerops auto-generates these env vars

| Variable | Description |
|----------|-------------|
| `apiUrl` | S3 endpoint URL (accessible from Zerops and remotely) |
| `apiUrl` | S3 endpoint URL — full `https://...` URL ready for any S3 SDK's `endpoint` option |
| `apiHost` | S3 endpoint host only (no scheme); use only if the client library needs host separately |
| `accessKeyId` | S3 access key |
| `secretAccessKey` | S3 secret key |
| `bucketName` | Auto-generated bucket name (hostname + random prefix, immutable) |
Expand All @@ -20,6 +21,8 @@ When you create an Object Storage service, Zerops auto-generates these env vars
| `serviceId` | Service ID (Zerops-generated) |
| `hostname` | Service hostname |

**Use `${storage_apiUrl}` as the S3 endpoint** — it carries the complete `https://` scheme and is what every S3 SDK's `endpoint` option expects. The `apiHost` variant is host-only; if a client library requires host separately, combine `https://${storage_apiHost}` manually — **never `http://`**. The object-storage gateway rejects plaintext HTTP with a 301 redirect to the HTTPS equivalent, and most S3 SDKs don't follow the redirect automatically. The symptom of a misconfigured endpoint is `UnknownError` or connection-refused on the first bucket call.

Reference them in zerops.yml `run.envVariables`:
```yaml
S3_ENDPOINT: ${storage_apiUrl}
Expand Down
Loading