Skip to main content
MinIO speaks the S3 API with AWS Signature V4 against your own server endpoint (e.g. http://localhost:9000). MinIO is self-hosted, so the endpoint is required and path-style addressing is used by default. Credentials (access key + secret key from the MinIO Console) are created the same way in both runtimes, see MinIO Credentials.

Node (server-side)

Browser (presigned URLs)

The browser MinIOResource is secret-free, your backend signs each operation using your MinIO keys and returns a URL. MinIO accepts AWS Signature V4, so @aws-sdk/s3-request-presigner works, pointed at your MinIO endpoint.

1. Server: sign URLs with the MinIO endpoint

MinIO uses path-style URLs (forcePathStyle: true), virtual-hosted style requires extra DNS setup on a self-hosted server.

2. Browser: wire it up

endpoint on the browser config is only used for display/logging; the actual endpoint is baked into the presigned URLs your backend returns.

3. CORS

MinIO answers CORS preflights for all origins by default, so local dev typically works without configuration. To restrict origins, set the server environment variable and restart MinIO:
See the MinIO resource docs for the equivalent Python wiring.