S3

Storage Access key and secret Windmill docs

Read and write objects on S3 or any S3-compatible store — MinIO, R2, Tigris — from any Windmill script, flow or app.

Set up in 3 steps

1

Collect the bucket details

You need the bucket name, its region, the endpoint that serves it — s3.eu-west-3.amazonaws.com for AWS, your own host for MinIO or R2 — and an access key and secret allowed to reach it.

2

Add the resource in Windmill

Open Resources, add a resource of type s3, and fill the fields. Turn pathStyle on for MinIO and most self-hosted stores, off for AWS.

3

Run your first script

Fork any script below and list the bucket to confirm the credentials before writing anything.

Scripts

Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.

Resource type

s3 — the shape of the credential every script on this page expects.

View raw schema →
FieldTypeRequiredWhat it is
endPointstringNoThe full URL of the S3 endpoint (e.g. https://s3.us-east-1.amazonaws.com)
regionstringNoAWS region (e.g. us-east-1). Used to auto-generate the S3 endpoint URL when endPoint is not specified
pathStylebooleanNo<host>/<bucket>/<path> instead of <bucket>.<host>/<path>
bucketstringYes
accessKeystringNo
secretKeystringNo
portnumberNoDeprecated: pass in a complete URL to `endPoint` instead, including a port number if needed
useSSLbooleanNoDeprecated: pass in a complete URL to `endPoint` instead, including 'https://' or 'http://'

All resource types

Questions

Can I connect without an access key?

On AWS, yes: the s3_aws_oidc resource takes a role to assume instead of a key pair, and workers exchange their own identity for short-lived credentials.

Is this the same as workspace object storage?

No. This resource is for scripts that address a bucket themselves. Workspace object storage is a separate, Enterprise layer that lets scripts pass files around without ever seeing the credentials.

Are my keys stored on the hub?

Never. They live only in your own Windmill workspace, encrypted at rest.