Skip to content

S3

The S3 sink writes data to an Amazon S3 bucket or compatible object storage service. It uploads incoming byte arrays as objects to the specified bucket and prefix.

Each object is stored with a unique key generated from the current timestamp and a UUID. The content type of the objects can be configured.

.consumeFromSource(...)
.terminateWithSink(S3SinkConfigBuilder.builder()
    .withS3ResourceName(value)
    .withBucketName(value)
    .withPrefix(value)
)
sink:
  s3:
    s3ResourceName: value
    bucketName: value
    prefix: value

Java dependency management

Add this declaration to your dependency management system to access the configuration DSL for this plugin in Java.

<dependency>
    <groupId>org.voltdb</groupId>
    <artifactId>volt-stream-plugin-aws-api</artifactId>
    <version>1.0-20250910-124207-release-1.5.3</version>
</dependency>
implementation group: 'org.voltdb', name: 'volt-stream-plugin-aws-api', version: '1.0-20250910-124207-release-1.5.3'

Properties

s3ResourceName

The name of the s3 client resource. Required.

Type: string

bucketName

The name of the S3 bucket to write objects to. Required.

Type: string

prefix

The prefix to prepend to object keys. This can be used to organize objects in the bucket. Type: string

Usage Examples

stream
       .withName("Write data to S3")
       .configureResource("s3-client", S3ResourceConfigBuilder.class, resourceBuilder -> {})
       .consumeFromSource(source)
       .terminateWithSink(
               S3SinkConfigBuilder.builder()
                       .withBucketName("my-bucket")
                       .withPrefix("output/")
                       .withS3ResourceName("s3-client")
       );

This configuration writes data to the "output/" prefix in the "my-bucket" bucket with the content type set to "application/json".