From 3b2648bd5eb97fb5a0d6cc51a1cbe4d596f1c249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Szczygie=C5=82?= Date: Wed, 5 Jul 2017 16:19:25 +0200 Subject: [PATCH] iam instance profile --- src/restic/backend/s3/s3.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/restic/backend/s3/s3.go b/src/restic/backend/s3/s3.go index 2de495403..70535ecec 100644 --- a/src/restic/backend/s3/s3.go +++ b/src/restic/backend/s3/s3.go @@ -14,6 +14,7 @@ import ( "restic/errors" "github.com/minio/minio-go" + "github.com/minio/minio-go/pkg/credentials" "restic/debug" ) @@ -38,9 +39,24 @@ func open(cfg Config) (*Backend, error) { 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") + var client *minio.Client + var err error + + if cfg.KeyID == "" || cfg.Secret == "" { + debug.Log("iam") + creds := credentials.NewIAM("") + client, err = minio.NewWithCredentials(cfg.Endpoint, creds, !cfg.UseHTTP, "") + + if err != nil { + return nil, errors.Wrap(err, "minio.NewWithCredentials") + } + } else { + debug.Log("key, secret") + client, err = minio.New(cfg.Endpoint, cfg.KeyID, cfg.Secret, !cfg.UseHTTP) + + if err != nil { + return nil, errors.Wrap(err, "minio.New") + } } sem, err := backend.NewSemaphore(cfg.Connections)