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"
"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/storage/azblob"
"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/httprange"
defaultTransport "github.com/imgproxy/imgproxy/v3/transport"
"github.com/imgproxy/imgproxy/v3/transport/notmodified"
)
@ -46,20 +48,31 @@ func New() (http.RoundTripper, error) {
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 {
sharedKeyCredential, err = azblob.NewSharedKeyCredential(config.ABSName, config.ABSKey)
if err != nil {
return nil, err
}
client, err = azblob.NewClientWithSharedKeyCredential(endpointURL.String(), sharedKeyCredential, nil)
client, err = azblob.NewClientWithSharedKeyCredential(endpointURL.String(), sharedKeyCredential, &opts)
} else {
defaultAzureCredential, err = azidentity.NewDefaultAzureCredential(nil)
if err != nil {
return nil, err
}
client, err = azblob.NewClient(endpointURL.String(), defaultAzureCredential, nil)
client, err = azblob.NewClient(endpointURL.String(), defaultAzureCredential, &opts)
}
if err != nil {

View File

@ -28,10 +28,12 @@ func (s *AzureTestSuite) SetupSuite() {
logrus.SetOutput(os.Stdout)
config.IgnoreSslVerification = true
s.etag = "testetag"
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)
rw.Header().Set("Etag", s.etag)
@ -52,6 +54,7 @@ func (s *AzureTestSuite) SetupSuite() {
func (s *AzureTestSuite) TearDownSuite() {
s.server.Close()
config.IgnoreSslVerification = false
}
func (s *AzureTestSuite) TestRoundTripWithETagDisabledReturns200() {