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
endpoint:
snapr.yaml
Options
Download mode
By default snapr proxies download responses through its own HTTP server. SetdownloadMode: 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
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).
- 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: proxyif 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.lastbackup sets exist; see Storages → Retention. - For non-AWS providers, set
endpointto the service URL — path-style addressing is enabled automatically. storageClassis forwarded as thex-amz-storage-classheader. Providers that don’t recognize the value fall back to their default.