Skip to main content
The S3 storage backend supports Amazon S3 and any S3-compatible service, including Cloudflare R2, MinIO, DigitalOcean Spaces, and more.

Configuration

Required Settings

string
required
Full store URI, e.g. s3:my-backup-bucket or s3:my-backup-bucket/prefix/
string
default:"us-east-1"
AWS region for the bucket

Authentication

string
required
AWS access key ID
string
required
AWS secret access key
You can also use:
  • -s3-access-key and -s3-secret-key flags
  • AWS credential profiles (~/.aws/credentials)
  • IAM instance roles (EC2, ECS, Lambda)

Examples

Features

High-Concurrency Uploads

The S3 store uses optimized connection pooling:
  • 128 concurrent uploads by default
  • HTTP connection reuse for reduced latency
  • Parallel PUT operations for chunk uploads
This provides significantly faster backups compared to sequential uploads.

Path-Style Addressing

For custom endpoints (R2, MinIO), Cloudstic automatically uses path-style addressing:

Packfile Optimization

Packfiles bundle small objects to reduce PUT requests:
  • Default enabled for S3 backends
  • Reduces API costs significantly
  • Bundles objects less than 512KB into 8MB packs
  • Catalog stored in index/packs

S3 Bucket Setup

Create a Bucket

IAM Policy (AWS S3)

Create a minimal IAM policy for Cloudstic:

Performance Optimization

Region Selection

Choose a region close to your location:

Transfer Acceleration (AWS S3)

Enable S3 Transfer Acceleration for faster uploads over long distances:

Cost Optimization

Storage Classes

Use lifecycle policies to transition old backups to cheaper storage:
lifecycle.json:
If using lifecycle policies, remember that Glacier retrieval takes hours and has additional costs.

Request Reduction

Enable packfiles to reduce PUT request costs:
  • Without packfiles: 1 PUT per chunk/content/filemeta object
  • With packfiles: Objects bundled into 8MB packs
For 10,000 files, this can reduce from 30,000+ PUTs to just a few hundred.

Troubleshooting

Credential Errors

If you see “Unable to locate credentials”:

Region Mismatch

If you see “bucket is in this region” errors:

Endpoint Configuration (R2/MinIO)

If custom endpoints fail:

Backup Command

Create backups to S3

B2 Storage

Alternative cloud storage

Local Storage

Use local filesystem

Encryption

Data encryption details