diff --git a/apps/drivers/s3.go b/apps/drivers/s3.go index f8ad718..0c33074 100644 --- a/apps/drivers/s3.go +++ b/apps/drivers/s3.go @@ -172,5 +172,8 @@ func (s S3Driver) GetDownloadLink(key string) (string, error) { return "", fmt.Errorf("generating presign URL error: %v", err) } - return presignedURL.String(), nil + if s.S3SSL { + return fmt.Sprintf("https://%s%s?%s", s.S3Endpoint, presignedURL.Path, presignedURL.RawQuery), nil + } + return fmt.Sprintf("http://%s%s?%s", s.S3Endpoint, presignedURL.Path, presignedURL.RawQuery), nil } diff --git a/apps/drivers/s3_test.go b/apps/drivers/s3_test.go index 46f5344..d643040 100644 --- a/apps/drivers/s3_test.go +++ b/apps/drivers/s3_test.go @@ -77,3 +77,12 @@ func TestS3Delete(t *testing.T) { assert.Nil(t, err) assert.NotContains(t, keys, "testkey") } + +func TestGetDownloadLink(t *testing.T) { + err := testS3Driver.Write("testkey", []byte(testContent)) + assert.Nil(t, err) + + link, err := testS3Driver.GetDownloadLink("testkey") + assert.Nil(t, err) + assert.Contains(t, link, "/testsnapshots/testkey?X-Amz-Algorithm=AWS4-HMAC-SHA256") +}