From 3120a8c6eec87354ce04547e92b9e7cdc4f931b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20=C5=A0trauch?= Date: Wed, 3 Nov 2021 23:50:58 +0100 Subject: [PATCH] Returning functional snapshot download link --- apps/drivers/s3.go | 5 ++++- apps/drivers/s3_test.go | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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") +}