X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1dee1aad0573bf3a54d536c8dd3693a352cf0cbe..d6897f2bee374d4a71fb96f0a794fba598174407:/services/keepstore/s3_volume.go diff --git a/services/keepstore/s3_volume.go b/services/keepstore/s3_volume.go index 08cc591fc5..235d369b5a 100644 --- a/services/keepstore/s3_volume.go +++ b/services/keepstore/s3_volume.go @@ -24,7 +24,7 @@ import ( "sync/atomic" "time" - "git.curoverse.com/arvados.git/sdk/go/arvados" + "git.arvados.org/arvados.git/sdk/go/arvados" "github.com/AdRoll/goamz/aws" "github.com/AdRoll/goamz/s3" "github.com/prometheus/client_golang/prometheus" @@ -32,12 +32,12 @@ import ( ) func init() { - driver["S3"] = newS3Volume + driver["S3"] = chooseS3VolumeDriver } func newS3Volume(cluster *arvados.Cluster, volume arvados.Volume, logger logrus.FieldLogger, metrics *volumeMetricsVecs) (Volume, error) { v := &S3Volume{cluster: cluster, volume: volume, metrics: metrics} - err := json.Unmarshal(volume.DriverParameters, &v) + err := json.Unmarshal(volume.DriverParameters, v) if err != nil { return nil, err } @@ -129,20 +129,9 @@ func s3regions() (okList []string) { // S3Volume implements Volume using an S3 bucket. type S3Volume struct { - AccessKey string - SecretKey string - AuthToken string // populated automatically when IAMRole is used - AuthExpiration time.Time // populated automatically when IAMRole is used - IAMRole string - Endpoint string - Region string - Bucket string - LocationConstraint bool - IndexPageSize int - ConnectTimeout arvados.Duration - ReadTimeout arvados.Duration - RaceWindow arvados.Duration - UnsafeDelete bool + arvados.S3VolumeDriverParameters + AuthToken string // populated automatically when IAMRole is used + AuthExpiration time.Time // populated automatically when IAMRole is used cluster *arvados.Cluster volume arvados.Volume @@ -188,8 +177,7 @@ func (v *S3Volume) bootstrapIAMCredentials() error { func (v *S3Volume) newS3Client() *s3.S3 { auth := aws.NewAuth(v.AccessKey, v.SecretKey, v.AuthToken, v.AuthExpiration) client := s3.New(*auth, v.region) - if v.region.EC2Endpoint.Signer == aws.V4Signature { - // Currently affects only eu-central-1 + if !v.V2Signature { client.Signature = aws.V4Signature } client.ConnectTimeout = time.Duration(v.ConnectTimeout)