1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2025-02-12 11:46:10 +02:00

Use custom HTTP client with Azure; Fix Azure transport tests

This commit is contained in:
DarthSim 2024-02-22 20:46:15 +03:00
parent 4f43f2ca23
commit 3b252b83e4
2 changed files with 19 additions and 3 deletions

View File

@ -10,6 +10,7 @@ import (
"strings" "strings"
"github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob"
@ -17,6 +18,7 @@ import (
"github.com/imgproxy/imgproxy/v3/config" "github.com/imgproxy/imgproxy/v3/config"
"github.com/imgproxy/imgproxy/v3/httprange" "github.com/imgproxy/imgproxy/v3/httprange"
defaultTransport "github.com/imgproxy/imgproxy/v3/transport"
"github.com/imgproxy/imgproxy/v3/transport/notmodified" "github.com/imgproxy/imgproxy/v3/transport/notmodified"
) )
@ -46,20 +48,31 @@ func New() (http.RoundTripper, error) {
return nil, err return nil, err
} }
trans, err := defaultTransport.New(false)
if err != nil {
return nil, err
}
opts := azblob.ClientOptions{
ClientOptions: policy.ClientOptions{
Transport: &http.Client{Transport: trans},
},
}
if len(config.ABSKey) > 0 { if len(config.ABSKey) > 0 {
sharedKeyCredential, err = azblob.NewSharedKeyCredential(config.ABSName, config.ABSKey) sharedKeyCredential, err = azblob.NewSharedKeyCredential(config.ABSName, config.ABSKey)
if err != nil { if err != nil {
return nil, err return nil, err
} }
client, err = azblob.NewClientWithSharedKeyCredential(endpointURL.String(), sharedKeyCredential, nil) client, err = azblob.NewClientWithSharedKeyCredential(endpointURL.String(), sharedKeyCredential, &opts)
} else { } else {
defaultAzureCredential, err = azidentity.NewDefaultAzureCredential(nil) defaultAzureCredential, err = azidentity.NewDefaultAzureCredential(nil)
if err != nil { if err != nil {
return nil, err return nil, err
} }
client, err = azblob.NewClient(endpointURL.String(), defaultAzureCredential, nil) client, err = azblob.NewClient(endpointURL.String(), defaultAzureCredential, &opts)
} }
if err != nil { if err != nil {

View File

@ -28,10 +28,12 @@ func (s *AzureTestSuite) SetupSuite() {
logrus.SetOutput(os.Stdout) logrus.SetOutput(os.Stdout)
config.IgnoreSslVerification = true
s.etag = "testetag" s.etag = "testetag"
s.lastModified, _ = time.Parse(http.TimeFormat, "Wed, 21 Oct 2015 07:28:00 GMT") s.lastModified, _ = time.Parse(http.TimeFormat, "Wed, 21 Oct 2015 07:28:00 GMT")
s.server = httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { s.server = httptest.NewTLSServer(http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
require.Equal(s.T(), "/test/foo/test.png", r.URL.Path) require.Equal(s.T(), "/test/foo/test.png", r.URL.Path)
rw.Header().Set("Etag", s.etag) rw.Header().Set("Etag", s.etag)
@ -52,6 +54,7 @@ func (s *AzureTestSuite) SetupSuite() {
func (s *AzureTestSuite) TearDownSuite() { func (s *AzureTestSuite) TearDownSuite() {
s.server.Close() s.server.Close()
config.IgnoreSslVerification = false
} }
func (s *AzureTestSuite) TestRoundTripWithETagDisabledReturns200() { func (s *AzureTestSuite) TestRoundTripWithETagDisabledReturns200() {