Overview
A client-mode connector for a curated IIoT object-storage slice of the Amazon S3 REST API under path-stylehttps://s3.amazonaws.com:
BASE_ADDRESS defaults to https://s3.amazonaws.com (no trailing slash; path-style). Prefer regional https://s3.{region}.amazonaws.com when required. Topics use storage/amazon-s3/<object>/<verb>.
Virtual-hosted style: set
BASE_ADDRESS to https://{bucket}.s3.{region}.amazonaws.com and use endpoints like /{key} (bucket is already in the host).Presigned PUT: set
BASE_ADDRESS to the presigned URL origin only, put path+query in presigned_path, and omit SigV4 headers — the query string carries the signature. Ideal for edge devices that must not hold AWS keys.S3 event notifications (SNS / EventBridge / Lambda) are not inbound HTTP on this client connector. Receiving notification POSTs needs a separate
ENABLE_SERVER REST_API template (not packaged).Prefer Hub secrets for AWS keys used by an upstream SigV4 signer. This template has not been verified against a live AWS account. Status remains blocked until an authenticated live smoke (or working presigned URL smoke) succeeds.
Basic Syntax
Configuration
Authentication
AWS Signature Version 4
S3 does not useAuthorization: Bearer …. Sign each request with SigV4 and pass:
Use Hub secrets for
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY in an upstream signing helper. Never commit real keys. STS sessions may also need x-amz-security-token (add that header in a customized fork if required).
Presigned URLs (recommended for edge)
Generate a time-limited PUT or GET URL with the AWS CLI/SDK. For PutPresigned:- Point
BASE_ADDRESSat the URL origin. - Put path + query into
presigned_path. - Omit Authorization — do not re-sign on the broker.
MQTT topics
Example payloads
ListBuckets smoke (after signing):References
- S3 API PutObject
- S3 API GetObject
- S3 API HeadObject
- S3 API ListBuckets
- Upload with a presigned URL
- Authenticating Requests (SigV4)
- Coreflux REST API Connectors
Package status
Blocked on the factory untilAWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY (+ region + test bucket) or a valid presigned URL enables a live authenticated smoke recorded in TEST.md.
