问题产生原因
- 项目服务部署在客户的内网环境,所有外网请求需要经过统一代理进行访问才行;
- 项目中使用环境变量设置网络代理没有能生效
- 项目中除腾讯云对象存储外其他 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账户的访问密钥。