Erupt S3 Object Storage
erupt-data-s3 connects any S3-compatible object storage to Erupt — AWS S3, MinIO, Alibaba Cloud OSS, Tencent Cloud COS, Cloudflare R2 and more — built on AWS SDK v2. The module offers two independent capabilities that share one set of configuration:
| Capability | What it does | Page |
|---|---|---|
| Attachment upload | Moves every Erupt attachment (@Edit(type = ATTACHMENT), rich-text images, etc.) from the local disk into a bucket | Attachment Upload |
| Object browsing data source | Mounts a bucket (or a prefix inside it) as an @Erupt model so objects can be searched, inspected and deleted from the admin console with permissions | Object Data Source |
Most projects only need the first; the second gives ops or business users an auditable object management view.
Adding the Dependency
<dependency>
<groupId>xyz.erupt</groupId>
<artifactId>erupt-data-s3</artifactId>
<version>${erupt.version}</version>
</dependency>The module ships software.amazon.awssdk:s3 — nothing extra to add. Once Spring Boot auto-configuration kicks in, the erupt.s3.* properties are available.
One Configuration, Used Twice
Connection settings live in erupt.s3.*:
erupt:
s3:
bucket: erupt-uploads
region: ap-southeast-1
endpoint: http://minio.internal:9000 # omit for AWS
path-style: true # MinIO / self-hosted
access-key: ${S3_ACCESS_KEY}
secret-key: ${S3_SECRET_KEY}- The attachment proxy
S3AttachmentProxyreads this configuration directly. - Connection attributes left empty on the
@EruptS3data source annotation fall back to it too, so a model carrying nothing but@EruptS3browses the attachment bucket; override only the attributes that differ to reach another bucket or provider.
Keep credentials in configuration or environment variables, never in the annotation — annotation values are compile-time constants and end up in the class file. See the Configuration Reference for every property.
Pages
- Attachment Upload — two steps to store attachments in a bucket; storage path and public URL rules
- Object Data Source —
@EruptS3,S3ObjectModel, supported operations and limits - Configuration Reference — every
erupt.s3.*property and@EruptS3attribute, fallback rules, credential advice - Providers — concrete settings for AWS / MinIO / OSS / COS / R2 and the endpoint rules
- FAQ — signature errors, 403s, missing buckets and other troubleshooting
Versions
The object browsing data source has been available since 2.1.0; the S3AttachmentProxy and the erupt.s3.* properties since 2.3.0.