Skip to main content
Ceph Rados Gateway (RGW) speaks the S3 API with AWS Signature V4 against your own gateway endpoint (e.g. https://ceph.example.com). RGW is self-hosted, so the endpoint is required and path-style addressing is used by default. Credentials (RGW user access key + secret key) are created the same way in both runtimes, see Ceph Credentials.

Node (server-side)

Browser (presigned URLs)

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

1. Server: sign URLs with the RGW endpoint

RGW uses path-style URLs (forcePathStyle: true), virtual-hosted style requires wildcard DNS on the gateway.

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

RGW supports the S3 PutBucketCors call, so the AWS CLI works against your gateway:
See the Ceph resource docs for the equivalent Python wiring.