diff --git a/registry/storage/driver/s3-aws/s3.go b/registry/storage/driver/s3-aws/s3.go index 8b6e213e5..019852308 100644 --- a/registry/storage/driver/s3-aws/s3.go +++ b/registry/storage/driver/s3-aws/s3.go @@ -36,7 +36,6 @@ import ( "github.com/aws/aws-sdk-go/service/s3" dcontext "github.com/distribution/distribution/v3/context" - "github.com/distribution/distribution/v3/registry/client/transport" storagedriver "github.com/distribution/distribution/v3/registry/storage/driver" "github.com/distribution/distribution/v3/registry/storage/driver/base" "github.com/distribution/distribution/v3/registry/storage/driver/factory" @@ -526,28 +525,24 @@ func New(params DriverParameters) (*Driver, error) { awsConfig.UseDualStackEndpoint = endpoints.DualStackEndpointStateEnabled } - if params.UserAgent != "" || params.SkipVerify { - httpTransport := http.DefaultTransport - if params.SkipVerify { - httpTransport = &http.Transport{ - TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, - } - } - if params.UserAgent != "" { - awsConfig.WithHTTPClient(&http.Client{ - Transport: transport.NewTransport(httpTransport, transport.NewHeaderRequestModifier(http.Header{http.CanonicalHeaderKey("User-Agent"): []string{params.UserAgent}})), - }) - } else { - awsConfig.WithHTTPClient(&http.Client{ - Transport: transport.NewTransport(httpTransport), - }) + if params.SkipVerify { + httpTransport := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } + awsConfig.WithHTTPClient(&http.Client{ + Transport: httpTransport, + }) } sess, err := session.NewSession(awsConfig) if err != nil { return nil, fmt.Errorf("failed to create new session with aws config: %v", err) } + + if params.UserAgent != "" { + sess.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler(params.UserAgent)) + } + s3obj := s3.New(sess) // enable S3 compatible signature v2 signing instead