From be5e725c5e671a9dd2f65615f0cd40c57497113a Mon Sep 17 00:00:00 2001 From: gavinhgchen Date: Tue, 5 Jul 2022 15:03:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=81=E8=AE=B8=E7=8B=AC=E7=AB=8B=E9=85=8D?= =?UTF-8?q?=E7=BD=AEIntranetAddr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/cos_config.h | 17 +++++++++++++++++ src/cos_config.cpp | 14 ++++++++++++++ src/op/base_op.cpp | 6 +++--- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/include/cos_config.h b/include/cos_config.h index d46d29b..14eef56 100644 --- a/include/cos_config.h +++ b/include/cos_config.h @@ -25,6 +25,8 @@ class CosConfig { m_secret_key(""), m_region(""), m_tmp_token(""), + m_is_use_intranet(false), + m_intranet_addr(""), m_config_parsed(false) {} /// \brief CosConfig构造函数 @@ -40,6 +42,8 @@ class CosConfig { m_secret_key(secret_key), m_region(region), m_tmp_token(""), + m_is_use_intranet(false), + m_intranet_addr(""), m_config_parsed(false) {} /// \brief CosConfig构造函数 @@ -56,6 +60,8 @@ class CosConfig { m_secret_key(secret_key), m_region(region), m_tmp_token(tmp_token), + m_is_use_intranet(false), + m_intranet_addr(""), m_config_parsed(false) {} /// \brief CosConfig复制构造函数 @@ -67,6 +73,8 @@ class CosConfig { m_secret_key = config.m_secret_key; m_region = config.m_region; m_tmp_token = config.m_tmp_token; + m_is_use_intranet = config.m_is_use_intranet; + m_intranet_addr = config.m_intranet_addr; m_config_parsed = config.m_config_parsed; } @@ -79,6 +87,8 @@ class CosConfig { m_secret_key = config.m_secret_key; m_region = config.m_region; m_tmp_token = config.m_tmp_token; + m_is_use_intranet = config.m_is_use_intranet; + m_intranet_addr = config.m_intranet_addr; m_config_parsed = config.m_config_parsed; return *this; } @@ -142,9 +152,13 @@ class CosConfig { /// \brief 设置是否使用自定义ip和端口号 void SetIsUseIntranetAddr(bool is_use_intranet); + bool IsUseIntranet(); + /// \berief 设置自定义ip和端口号 void SetIntranetAddr(const std::string& intranet_addr); + std::string GetIntranetAddr(); + /// \brief 设置日志回调 void SetLogCallback(const LogCallback log_callback); @@ -164,6 +178,9 @@ class CosConfig { std::string m_secret_key; std::string m_region; std::string m_tmp_token; + + bool m_is_use_intranet; + std::string m_intranet_addr; bool m_config_parsed; }; diff --git a/src/cos_config.cpp b/src/cos_config.cpp index a220931..033dc00 100644 --- a/src/cos_config.cpp +++ b/src/cos_config.cpp @@ -15,6 +15,8 @@ CosConfig::CosConfig(const std::string& config_file) m_secret_key(""), m_region(""), m_tmp_token(""), + m_is_use_intranet(false), + m_intranet_addr(""), m_config_parsed(false) { if (InitConf(config_file)) { m_config_parsed = true; @@ -188,10 +190,12 @@ bool CosConfig::InitConf(const std::string& config_file) { if (JsonObjectGetBoolValue(object, "IsUseIntranet", &bool_value)) { CosSysConfig::SetIsUseIntranet(bool_value); + m_is_use_intranet = bool_value; } if (JsonObjectGetStringValue(object, "IntranetAddr", &str_value)) { CosSysConfig::SetIntranetAddr(str_value); + m_intranet_addr = str_value; } CosSysConfig::PrintValue(); @@ -231,10 +235,20 @@ void CosConfig::SetConfigCredentail(const std::string& access_key, void CosConfig::SetIsUseIntranetAddr(bool is_use_intranet) { CosSysConfig::SetIsUseIntranet(is_use_intranet); + m_is_use_intranet = is_use_intranet; +} + +bool CosConfig::IsUseIntranet() { + return m_is_use_intranet; } void CosConfig::SetIntranetAddr(const std::string& intranet_addr) { CosSysConfig::SetIntranetAddr(intranet_addr); + m_intranet_addr = intranet_addr; +} + +std::string CosConfig::GetIntranetAddr() { + return m_intranet_addr; } void CosConfig::SetLogCallback(const LogCallback log_callback) { diff --git a/src/op/base_op.cpp b/src/op/base_op.cpp index 44b9872..bf39273 100644 --- a/src/op/base_op.cpp +++ b/src/op/base_op.cpp @@ -305,9 +305,9 @@ std::string BaseOp::GetRealUrl(const std::string& host, const std::string& path, dest_path = "/" + dest_path; } - if (CosSysConfig::IsUseIntranet() && - !CosSysConfig::GetIntranetAddr().empty()) { - dest_host = CosSysConfig::GetIntranetAddr(); + if (m_config->IsUseIntranet() && + !m_config->GetIntranetAddr().empty()) { + dest_host = m_config->GetIntranetAddr(); } else if (!CosSysConfig::GetDestDomain().empty()) { dest_host = CosSysConfig::GetDestDomain(); } else if (CosSysConfig::GetUseDnsCache()) {