Skip to content

Commit 71d72b7

Browse files
committed
Fix the bucket for presigns: it's always "Parquet"
1 parent be54939 commit 71d72b7

3 files changed

Lines changed: 28 additions & 19 deletions

File tree

internal/graph/base.resolvers.go

Lines changed: 2 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/eventrepo/eventrepo.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,20 @@ func New(chConn clickhouse.Conn, objGetter ObjectGetter, presigner Presigner, pa
7171
}
7272
}
7373

74-
// PresignBlobURL returns a short-lived presigned GET URL for the given S3 key and bucket.
75-
func (s *Service) PresignBlobURL(ctx context.Context, key, bucket string) (string, error) {
74+
// PresignBlobURL returns a short-lived presigned GET URL for the given S3 key in the parquet bucket.
75+
func (s *Service) PresignBlobURL(ctx context.Context, key string) (string, error) {
7676
if s.presigner == nil {
7777
return "", fmt.Errorf("presigner not configured")
7878
}
79+
if s.parquetBucket == "" {
80+
return "", fmt.Errorf("parquet bucket not configured")
81+
}
7982
req, err := s.presigner.PresignGetObject(ctx, &s3.GetObjectInput{
80-
Bucket: aws.String(bucket),
83+
Bucket: aws.String(s.parquetBucket),
8184
Key: aws.String(key),
8285
}, s3.WithPresignExpires(presignTTL))
8386
if err != nil {
84-
return "", fmt.Errorf("presign %s/%s: %w", bucket, key, err)
87+
return "", fmt.Errorf("presign %s/%s: %w", s.parquetBucket, key, err)
8588
}
8689
return req.URL, nil
8790
}

pkg/eventrepo/presign_test.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ func TestPresignBlobURL(t *testing.T) {
2020
ctrl := gomock.NewController(t)
2121
mockPresigner := NewMockPresigner(ctrl)
2222

23-
svc := eventrepo.New(nil, nil, mockPresigner, "")
24-
2523
const (
2624
bucket = "test-bucket"
2725
key = "cloudevent/blobs/some-scan.bin"
2826
expectedURL = "https://s3.amazonaws.com/test-bucket/cloudevent/blobs/some-scan.bin?X-Amz-Signature=abc123"
2927
)
3028

29+
svc := eventrepo.New(nil, nil, mockPresigner, bucket)
30+
3131
mockPresigner.EXPECT().
3232
PresignGetObject(gomock.Any(), gomock.Any(), gomock.Any()).
3333
DoAndReturn(func(_ context.Context, params *s3.GetObjectInput, optFns ...func(*s3.PresignOptions)) (*v4.PresignedHTTPRequest, error) {
@@ -44,7 +44,7 @@ func TestPresignBlobURL(t *testing.T) {
4444
return &v4.PresignedHTTPRequest{URL: expectedURL}, nil
4545
})
4646

47-
url, err := svc.PresignBlobURL(context.Background(), key, bucket)
47+
url, err := svc.PresignBlobURL(context.Background(), key)
4848
require.NoError(t, err)
4949
assert.Equal(t, expectedURL, url)
5050
}
@@ -54,21 +54,33 @@ func TestPresignBlobURL_PresignerError(t *testing.T) {
5454
ctrl := gomock.NewController(t)
5555
mockPresigner := NewMockPresigner(ctrl)
5656

57-
svc := eventrepo.New(nil, nil, mockPresigner, "")
57+
svc := eventrepo.New(nil, nil, mockPresigner, "test-bucket")
5858

5959
mockPresigner.EXPECT().
6060
PresignGetObject(gomock.Any(), gomock.Any(), gomock.Any()).
6161
Return(nil, fmt.Errorf("signing failure"))
6262

63-
_, err := svc.PresignBlobURL(context.Background(), "cloudevent/blobs/test.bin", "test-bucket")
63+
_, err := svc.PresignBlobURL(context.Background(), "cloudevent/blobs/test.bin")
6464
require.Error(t, err)
6565
assert.Contains(t, err.Error(), "signing failure")
6666
}
6767

6868
func TestPresignBlobURL_NilPresigner(t *testing.T) {
6969
t.Parallel()
70-
svc := eventrepo.New(nil, nil, nil, "")
70+
svc := eventrepo.New(nil, nil, nil, "test-bucket")
71+
72+
_, err := svc.PresignBlobURL(context.Background(), "cloudevent/blobs/test.bin")
73+
require.Error(t, err)
74+
}
75+
76+
func TestPresignBlobURL_NoBucket(t *testing.T) {
77+
t.Parallel()
78+
ctrl := gomock.NewController(t)
79+
mockPresigner := NewMockPresigner(ctrl)
80+
81+
svc := eventrepo.New(nil, nil, mockPresigner, "")
7182

72-
_, err := svc.PresignBlobURL(context.Background(), "cloudevent/blobs/test.bin", "test-bucket")
83+
_, err := svc.PresignBlobURL(context.Background(), "cloudevent/blobs/test.bin")
7384
require.Error(t, err)
85+
assert.Contains(t, err.Error(), "parquet bucket not configured")
7486
}

0 commit comments

Comments
 (0)