aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhcpp <hcpp@ydb.tech>2022-07-20 16:40:25 +0300
committerhcpp <hcpp@ydb.tech>2022-07-20 16:40:25 +0300
commit1488927ea39daea1a84a7f2996ea74ff46c67318 (patch)
tree587d84c7d2d907246de257a95b0bfb737965cbe0
parent3c7d69ef625871f9fdf0eeca19c0836b347135a1 (diff)
downloadydb-1488927ea39daea1a84a7f2996ea74ff46c67318.tar.gz
url encoding for s3 has been fixed
-rw-r--r--ydb/core/yq/libs/actors/CMakeLists.txt1
-rw-r--r--ydb/core/yq/libs/actors/clusters_from_connections.cpp11
2 files changed, 10 insertions, 2 deletions
diff --git a/ydb/core/yq/libs/actors/CMakeLists.txt b/ydb/core/yq/libs/actors/CMakeLists.txt
index 01c3558e76..4c200da59e 100644
--- a/ydb/core/yq/libs/actors/CMakeLists.txt
+++ b/ydb/core/yq/libs/actors/CMakeLists.txt
@@ -19,6 +19,7 @@ target_link_libraries(yq-libs-actors PUBLIC
cpp-json-yson
cpp-monlib-dynamic_counters
library-cpp-random_provider
+ cpp-string_utils-quote
library-cpp-time_provider
library-cpp-yson
cpp-yson-node
diff --git a/ydb/core/yq/libs/actors/clusters_from_connections.cpp b/ydb/core/yq/libs/actors/clusters_from_connections.cpp
index 8ddc4096ae..6ffb882389 100644
--- a/ydb/core/yq/libs/actors/clusters_from_connections.cpp
+++ b/ydb/core/yq/libs/actors/clusters_from_connections.cpp
@@ -1,11 +1,14 @@
#include "clusters_from_connections.h"
#include <ydb/library/yql/providers/common/provider/yql_provider_names.h>
+#include <ydb/library/yql/utils/url_builder.h>
#include <util/generic/hash.h>
#include <util/string/builder.h>
#include <util/system/env.h>
+#include <library/cpp/string_utils/quote/quote.h>
+
namespace NYq {
using namespace NYql;
@@ -55,10 +58,14 @@ void FillS3ClusterConfig(NYql::TS3ClusterConfig& clusterConfig,
const YandexQuery::ObjectStorageConnection& s3) {
clusterConfig.SetName(name);
TString objectStorageUrl;
+
+
if (objectStorageEndpoint == "https://s3.mds.yandex.net") {
- objectStorageUrl = TStringBuilder() << "https://" << s3.bucket() << ".s3.mds.yandex.net/";
+ TUrlBuilder builder{"https://"};
+ objectStorageUrl = builder.AddPathComponent(s3.bucket() + ".s3.mds.yandex.net/").Build();
} else {
- objectStorageUrl = TStringBuilder() << objectStorageEndpoint << '/' << s3.bucket() << '/';
+ TUrlBuilder builder{UrlEscapeRet(objectStorageEndpoint, true)};
+ objectStorageUrl = builder.AddPathComponent(s3.bucket() + "/").Build();
}
clusterConfig.SetUrl(objectStorageUrl);
FillClusterAuth(clusterConfig, s3.auth(), authToken, accountIdSignatures);