diff --git a/src/restic/backend/s3/config.go b/src/restic/backend/s3/config.go index 45a040d86..673b1aaad 100644 --- a/src/restic/backend/s3/config.go +++ b/src/restic/backend/s3/config.go @@ -20,6 +20,7 @@ type Config struct { Layout string `option:"layout" help:"use this backend layout (default: auto-detect)"` 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"` } // NewConfig returns a new Config with the default values filled in. diff --git a/src/restic/backend/s3/s3.go b/src/restic/backend/s3/s3.go index 2fb88d2a6..5d7166679 100644 --- a/src/restic/backend/s3/s3.go +++ b/src/restic/backend/s3/s3.go @@ -39,6 +39,10 @@ const defaultLayout = "default" func Open(cfg Config) (restic.Backend, error) { debug.Log("open, config %#v", cfg) + if cfg.MaxRetries > 0 { + minio.MaxRetry = int(cfg.MaxRetries) + } + client, err := minio.New(cfg.Endpoint, cfg.KeyID, cfg.Secret, !cfg.UseHTTP) if err != nil { return nil, errors.Wrap(err, "minio.New")