Skip to content

Supported Operations

S3 Operations

OperationHTTP MethodDispatchDescription
GetObjectGET /{bucket}/{key}ForwardDownload a file
HeadObjectHEAD /{bucket}/{key}ForwardGet file metadata
PutObjectPUT /{bucket}/{key}ForwardUpload a file
DeleteObjectDELETE /{bucket}/{key}ForwardDelete a file
ListBucketGET /{bucket}ResponseList objects in a bucket (ListObjectsV2)
ListBucketsGET /ResponseList all virtual buckets
CreateMultipartUploadPOST /{bucket}/{key}?uploadsNeedsBodyInitiate a multipart upload
UploadPartPUT /{bucket}/{key}?partNumber=N&uploadId=IDNeedsBodyUpload a part
CompleteMultipartUploadPOST /{bucket}/{key}?uploadId=IDNeedsBodyComplete a multipart upload
AbortMultipartUploadDELETE /{bucket}/{key}?uploadId=IDNeedsBodyAbort a multipart upload

Dispatch Types

  • Forward — A presigned URL is generated and returned to the runtime, which executes it with its native HTTP client. Bodies stream directly between client and backend without buffering.
  • Response — The handler builds a complete response (XML for LIST, error responses) and returns it. No presigned URL involved.
  • NeedsBody — The runtime collects the request body, then the handler signs and sends the request via raw HTTP (backend.send_raw()). Multipart only.

STS Operations

Handled by an STS closure (registered on the Router via StsRouterExt).

OperationHTTP MethodDescription
AssumeRoleWithWebIdentityPOST /?Action=AssumeRoleWithWebIdentity&...Exchange OIDC JWT for temporary credentials

OIDC Discovery Endpoints

Handled by OIDC discovery closures (registered on the Router via OidcRouterExt). Served when OIDC_PROVIDER_KEY and OIDC_PROVIDER_ISSUER are configured.

EndpointMethodDescription
/.well-known/openid-configurationGETOpenID Connect discovery document
/.well-known/jwks.jsonGETJSON Web Key Set (proxy's RSA public key)

Limitations

WARNING

  • Multipart is S3 only — Multipart operations use raw HTTP with S3RequestSigner and are gated to backend_type = "s3". Non-S3 backends should use single PUT requests.
  • DeleteObject does not return confirmation — The proxy forwards the DELETE and returns the backend's response status.