Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

storage connectors

The config fields of a storage connector, which backs S3-compatible object storage, presign and metadata only.

S3-compatible object storage for storage_presign and storage_head, with a deliberately zero-data-path surface. Presigning is local SigV4 arithmetic over the connector’s credentials, and storage_head is one bounded metadata request. Object bytes never move through the runtime. Works against any S3-compatible store: AWS, Linode/Akamai, Cloudflare R2, Backblaze B2, Wasabi, and self-hosted Garage / SeaweedFS / RustFS (usually with force_path_style).

{
  "name": "media",
  "connector_type": "storage",
  "config": {
    "type": "storage",
    "endpoint": "https://ap-south-1.linodeobjects.com",
    "region": "ap-south-1",
    "bucket": "media-bucket",
    "access_key": "env://S3_ACCESS_KEY",
    "secret_key": "env://S3_SECRET_KEY"
  }
}
FieldTypeRequiredDefaultDescription
providerstringno"s3"Signing scheme. s3 covers every S3-compatible store; GCS/Azure later are new values
endpointstringyesBase URL, for example https://s3.us-east-1.amazonaws.com
regionstringyesSigV4 signing region
bucketstringyesThe bucket this connector reaches — deliberately connector-owned: a second bucket is a second connector
access_keystringyesAccess key id (masked on reads — use env:// references)
secret_keystringyesSecret key; literal or env://VAR
session_tokenstringnoSTS temporary-credential token, signed as X-Amz-Security-Token
force_path_stylebooleannofalsePath-style addressing (endpoint/bucket/key) — most self-hosted stores want true
allow_private_urlsbooleannofalseAllow a private/internal endpoint for storage_head’s network call
timeout_msintegerno10000storage_head timeout; presigning makes no network call
operationsobjectnoall allowedpresign_get / presign_put / headpresign_put: false makes a media connector read-only

POST /api/v1/admin/connectors/{name}/test performs one signed HEAD of the bucket. There is no retry field: presigning is local computation, and storage_head follows the estate rule that only http connectors retry.

Last verified 14 September 2026