fix: separate public object store TLS
This commit is contained in:
@@ -26,16 +26,17 @@ type Store struct {
|
||||
bucket string
|
||||
}
|
||||
|
||||
func New(endpoint, publicEndpoint, accessKey, secretKey, bucket, region string, secure bool) (*Store, error) {
|
||||
func New(endpoint, publicEndpoint, accessKey, secretKey, bucket, region string, secure, publicSecure bool) (*Store, error) {
|
||||
if endpoint == "" || publicEndpoint == "" || accessKey == "" || secretKey == "" || bucket == "" || region == "" {
|
||||
return nil, errors.New("object store endpoints, credentials, bucket and region are required")
|
||||
}
|
||||
options := &minio.Options{Creds: credentials.NewStaticV4(accessKey, secretKey, ""), Secure: secure, Region: region}
|
||||
internalClient, err := minio.New(endpoint, options)
|
||||
internalOptions := &minio.Options{Creds: credentials.NewStaticV4(accessKey, secretKey, ""), Secure: secure, Region: region}
|
||||
internalClient, err := minio.New(endpoint, internalOptions)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("create internal object store client: %w", err)
|
||||
}
|
||||
publicClient, err := minio.New(publicEndpoint, options)
|
||||
publicOptions := &minio.Options{Creds: credentials.NewStaticV4(accessKey, secretKey, ""), Secure: publicSecure, Region: region}
|
||||
publicClient, err := minio.New(publicEndpoint, publicOptions)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("create public object store signer: %w", err)
|
||||
}
|
||||
|
||||
@@ -15,10 +15,10 @@ import (
|
||||
)
|
||||
|
||||
func TestStoreValidationAndOfflineSigning(t *testing.T) {
|
||||
if _, err := New("", "localhost:59000", "key", "secret", "bucket", "us-east-1", false); err == nil {
|
||||
if _, err := New("", "localhost:59000", "key", "secret", "bucket", "us-east-1", false, false); err == nil {
|
||||
t.Fatal("missing internal endpoint was accepted")
|
||||
}
|
||||
store, err := New("localhost:59000", "localhost:59000", "local_minio", "local_minio_password", "private-exports", "us-east-1", false)
|
||||
store, err := New("localhost:59000", "localhost:59000", "local_minio", "local_minio_password", "private-exports", "us-east-1", false, true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -31,7 +31,7 @@ func TestStoreValidationAndOfflineSigning(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
parsed, err := url.Parse(download)
|
||||
if err != nil || parsed.Query().Get("X-Amz-Signature") == "" || parsed.Query().Get("response-content-disposition") != `attachment; filename="export.json"` {
|
||||
if err != nil || parsed.Scheme != "https" || parsed.Query().Get("X-Amz-Signature") == "" || parsed.Query().Get("response-content-disposition") != `attachment; filename="export.json"` {
|
||||
t.Fatalf("download URL=%q parsed=%+v err=%v", download, parsed, err)
|
||||
}
|
||||
if _, err := store.PresignUpload(ctx, "synthetic/firmware.bin", 0); err == nil {
|
||||
@@ -65,7 +65,7 @@ func TestStoreMinIOObjectLifecycle(t *testing.T) {
|
||||
if endpoint == "" {
|
||||
t.Skip("TEST_OBJECT_STORE_ENDPOINT is not set")
|
||||
}
|
||||
store, err := New(endpoint, endpoint, "local_minio", "local_minio_password", "private-exports", "us-east-1", false)
|
||||
store, err := New(endpoint, endpoint, "local_minio", "local_minio_password", "private-exports", "us-east-1", false, false)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user