From 8aa596ac88d0cb547a1c21cac1485e50636b97b0 Mon Sep 17 00:00:00 2001
From: Tom SF Haines <thaines@gmail.com>
Date: Sat, 25 Jun 2022 10:35:01 +0100
Subject: [PATCH] fix for format hiding tls certificate parameters from TiKV
 object storage connection

---
 cmd/format.go | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/cmd/format.go b/cmd/format.go
index 16692bbd..ba4dc36f 100644
--- a/cmd/format.go
+++ b/cmd/format.go
@@ -205,10 +205,22 @@ func createStorage(format meta.Format) (object.ObjectStorage, error) {
 			return nil, err
 		}
 		var tlsSkipVerify bool
-		if tlsSkipVerify, err = strconv.ParseBool(values.Get("tls-insecure-skip-verify")); err != nil {
-			return nil, err
+		if tlsSkipVerify, err = strconv.ParseBool(values.Get("tls-insecure-skip-verify")); err == nil {
+			object.GetHttpClient().Transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: tlsSkipVerify}
+			delete(values, "tls-insecure-skip-verify")
+		}
+		var first bool = true
+		for key, vals := range values {
+			for _, val := range vals {
+				if first {
+					format.Bucket += "?"
+					first = false
+				} else {
+					format.Bucket += "&"
+				}
+				format.Bucket += key + "=" + val
+			}
 		}
-		object.GetHttpClient().Transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: tlsSkipVerify}
 	}
 	if format.Shards > 1 {
 		blob, err = object.NewSharded(strings.ToLower(format.Storage), format.Bucket, format.AccessKey, format.SecretKey, format.SessionToken, format.Shards)
-- 
2.17.1

