StorageConnectionPut
s3_compatible covers Hetzner, IONOS, Scaleway, Wasabi, Backblaze B2, MinIO and Google Cloud Storage (HMAC keys).
Possible values: [s3, r2, s3_compatible]
s3 (required): the AWS region, from which the endpoint is derived. s3_compatible: the region the provider signs with (us-east-1 when omitted).
eu-central-1r2 (required): the 32-character Cloudflare account id.
0123456789abcdef0123456789abcdefr2: eu for a bucket in the EU jurisdiction.
Possible values: [default, eu]
defaults3_compatible (required): the service address only, https, on a public host.
https://fsn1.your-objectstorage.coms3_compatible: address the bucket in the path instead of the host name.
falseThe bucket name: 3 to 63 letters, digits, dots, hyphens or underscores.
fennlor-docsFolder every key is written below, up to 200 characters; a trailing slash is added.
formfeed/Object key below the prefix, up to 512 bytes, with {workspace}, {template}, {environment}, {render_id}, {job_id}, {yyyy}, {mm}, {dd} and {filename}; any other placeholder is refused. A placeholder without a value ({template} of an HTML render, {render_id} of a batch zip) drops its segment.
{yyyy}/{mm}/{render_id}/{filename}Which renders are copied; test renders only when test is listed.
Possible values: [live, test]
["live"]Where you serve the bucket, https only; each delivery's url is built from it.
https://docs.fennlor.exampleWrite-only. Needed, with secret_access_key, for a new connection or a changed endpoint; leave both out to keep the stored ones.
Write-only; never returned. Sent together with access_key_id.
{
"provider": "s3",
"region": "eu-central-1",
"account_id": "0123456789abcdef0123456789abcdef",
"jurisdiction": "default",
"endpoint": "https://fsn1.your-objectstorage.com",
"force_path_style": false,
"bucket": "fennlor-docs",
"prefix": "formfeed/",
"key_template": "{yyyy}/{mm}/{render_id}/{filename}",
"environments": [
"live"
],
"public_base_url": "https://docs.fennlor.example",
"access_key_id": "string",
"secret_access_key": "string"
}