Amazon S3
Write files to an Amazon S3 bucket in CSV or JSONL format. Use SignalSmith to export model results, audience lists, or enriched data as files in S3 for downstream consumption.
Prerequisites
- An Amazon S3 bucket
- An IAM user or role with
s3:PutObjectands3:GetBucketLocationpermissions on the target bucket - AWS access key ID and secret access key for authentication
Authentication
S3 uses AWS Access Keys authentication.
- In the AWS IAM Console, create an access key for a user with S3 write permissions
- Enter the Access Key ID and Secret Access Key in SignalSmith
Required IAM Permissions
The IAM user needs the following permissions on the target bucket:
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Bucket Name | Text | Yes | The S3 bucket to write files to (e.g., my-data-bucket) |
| AWS Region | Select | Yes | The AWS region where the bucket is located. Default: us-east-1. Options include US East (N. Virginia, Ohio), US West (N. California, Oregon), EU (Ireland, London, Frankfurt), Asia Pacific (Tokyo, Singapore, Sydney), Canada (Central), and South America (Sao Paulo) |
| Path Prefix | Text | No | Optional prefix for all object keys within the bucket. Default: signalsmith/ |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| File Format | Select | Yes | Output file format: CSV or JSONL (Newline Delimited JSON). Default: CSV |
| Enable Gzip Compression | Toggle | No | Compress files with gzip before uploading. Default: On |
Supported Operations
Sync Modes: Insert, Mirror
Audience Sync Modes: Add, Upsert, Mirror
Features
- Field Mapping: No — S3 writes all mapped fields as file columns
- Schema Introspection: No — S3 is a file-based destination without schema discovery
How It Works
SignalSmith writes data as files to the configured S3 bucket:
- Data is serialized into the selected format (CSV or JSONL)
- If gzip compression is enabled, the file is compressed before upload
- Files are uploaded to
s3://{bucket}/{path_prefix}/{sync_id}/{filename} - Each sync run produces a new set of files
For Mirror mode, SignalSmith replaces the previous set of files with the latest complete dataset.
Troubleshooting
Access denied
Verify the IAM user has s3:PutObject permission on the bucket and path prefix. Check the bucket policy does not explicitly deny access.
Bucket not found
Ensure the bucket name is correct and the selected AWS region matches the bucket’s actual region. S3 bucket names are globally unique.
Region mismatch
The AWS region must match the bucket’s region. A mismatch causes a redirect error. Check the bucket’s region in the S3 console under Properties.
Large file uploads failing
For very large syncs, SignalSmith uses multipart uploads. Ensure the IAM user has s3:PutObject and s3:AbortMultipartUpload permissions.