Springboot 项目中腾讯云对象存储如何添加网络代理

384 阅读1分钟

问题产生原因

  1. 项目服务部署在客户的内网环境,所有外网请求需要经过统一代理进行访问才行;
  2. 项目中使用环境变量设置网络代理没有能生效
  3. 项目中除腾讯云对象存储外其他 http 请求都添加了独立的代理

问题解决方案

通过查找腾讯云对象存储文档找到了在配置cos客户端时可以自定义对象存储的代理

参考地址: cloud.tencent.com/document/pr…

具体示例

配置:

spring.cloud.tencent.cos.proxy.host=your.proxy.host 
spring.cloud.tencent.cos.proxy.port=your.proxy.port 
spring.cloud.tencent.cos.proxy.username=your.proxy.username
spring.cloud.tencent.cos.proxy.password=your.proxy.password

代码:

创建一个代理客户端对象并将其添加到COS客户端配置中

@Bean
public CosClientConfig cosClientConfig() {
    CosClientConfig config = new CosClientConfig();
    // 设置代理主机和端口号
    config.setProxyHost("your.proxy.host");
    config.setProxyPort(your.proxy.port);
    // 设置代理用户名和密码
    config.setProxyUsername("your.proxy.username");
    config.setProxyPassword("your.proxy.password");
    return config;
}

@Bean
public COSClient cosClient(CosClientConfig cosClientConfig) {
    // 创建 COS 客户端
    COSCredentials credentials = new BasicCOSCredentials("yourSecretId", "yourSecretKey");
    COSClient cosClient = new COSClient(credentials, cosClientConfig);
    return cosClient;
}

说明: 在以上代码示例中,`CosClientConfig`对象用于配置COS客户端,其中`setProxyHost()``setProxyPort()`方法用于设置代理服务器的主机名和端口号,`setProxyUsername()``setProxyPassword()`方法用于设置代理服务器的用户名和密码。

需要替换代码中的“your.proxy.host”、“your.proxy.port”、“your.proxy.username”和“your.proxy.password”参数为实际的值。

同时,还需要将“yourSecretId”和“yourSecretKey”替换为你的腾讯云COS账户的访问密钥。