diff --git a/internal/backend/s3/config.go b/internal/backend/s3/config.go index 1760f48c2..932806714 100644 --- a/internal/backend/s3/config.go +++ b/internal/backend/s3/config.go @@ -18,6 +18,7 @@ type Config struct { Bucket string Prefix string Layout string `option:"layout" help:"use this backend layout (default: auto-detect)"` + StorageClass string `option:"storage-class" help:"set S3 storage class (STANDARD, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING or REDUCED_REDUNDANCY)"` Connections uint `option:"connections" help:"set a limit for the number of concurrent connections (default: 5)"` MaxRetries uint `option:"retries" help:"set the number of retries attempted"` diff --git a/internal/backend/s3/s3.go b/internal/backend/s3/s3.go index 70a052868..e3c95001d 100644 --- a/internal/backend/s3/s3.go +++ b/internal/backend/s3/s3.go @@ -260,7 +260,7 @@ func (be *Backend) Save(ctx context.Context, h restic.Handle, rd restic.RewindRe be.sem.GetToken() defer be.sem.ReleaseToken() - opts := minio.PutObjectOptions{} + opts := minio.PutObjectOptions{StorageClass: be.cfg.StorageClass} opts.ContentType = "application/octet-stream" debug.Log("PutObject(%v, %v, %v)", be.cfg.Bucket, objName, rd.Length())