Skip to main content
type: s3 uploads archives to AWS S3 or any S3-compatible service (MinIO, Wasabi, Backblaze B2 with S3 API, Cloudflare R2, and others). snapr uses the AWS SDK directly — no external binaries required. Your credentials need s3:PutObject, s3:ListBucket, s3:DeleteObject (for retention), and s3:GetObject (for downloads through the UI).

Example

snapr.yaml
For a non-AWS provider, set endpoint:
snapr.yaml

Options

Download mode

By default snapr proxies download responses through its own HTTP server. Set downloadMode: signed to have the API return a presigned S3 GET URL instead — the browser then fetches directly from S3 without going through snapr.
snapr.yaml
Use signed when:
  • snapr runs on a small instance and would saturate its bandwidth proxying large archives.
  • The client and the S3 endpoint share a faster network path than client → snapr → S3.
  • You want CDN-style edge delivery (works with S3 Transfer Acceleration or CloudFront origins).
Trade-offs:
  • Each signed URL carries short-lived auth in its query parameters. Shorten signedUrlTTL (minimum 60 s) if URLs may end up in proxy or access logs.
  • The browser must reach the S3 endpoint directly. For private MinIO setups, make sure the endpoint hostname resolves from the user’s network and CORS is configured on the bucket.
  • For split snapshots, per-part downloads still work (each part is its own redirect), but the “Download full archive” option is hidden in the UI — one HTTP redirect cannot represent N parts. Use downloadMode: proxy if full-archive streaming matters.
downloadMode: signed is only valid for type: s3. The config validator rejects it on other backends.

Retention and notes

  • Retention deletes the oldest objects under the job’s key prefix once more than retention.last backup sets exist; see Storages → Retention.
  • For non-AWS providers, set endpoint to the service URL — path-style addressing is enabled automatically.
  • storageClass is forwarded as the x-amz-storage-class header. Providers that don’t recognize the value fall back to their default.