gpt4 book ai didi

amazon-web-services - 企业代理背后的 AWS Java SDK

转载 作者:行者123 更新时间:2023-12-05 05:12:21 24 4
gpt4 key购买 nike

我想在本地测试我的 AWS 代码,所以我必须为 AWS 客户端设置代理。

在我的环境中通过变量 HTTPS_PROXY 设置了一个代理主机 ( http://user@pass:my-corporate-proxy.com:8080 )。

我没有找到如何设置整个代理的方法,所以我想出了这段代码:

AmazonSNS sns = AmazonSNSClientBuilder.standard()
.withClientConfiguration(clientConfig(System.getenv("HTTPS_PROXY")))
.withRegion(Regions.fromName(System.getenv("AWS_REGION")))
.withCredentials(new DefaultAWSCredentialsProviderChain())
.build();

ClientConfiguration clientConfig(String proxy) {
ClientConfiguration configuration = new ClientConfiguration();
if (proxy != null && !proxy.isEmpty()) {
Matcher matcher = Pattern.compile("(\\w{3,5})://((\\w+):(\\w+)@)?(.+):(\\d{1,5})").matcher(proxy);
if (!matcher.matches()) {
throw new IllegalArgumentException("Proxy not valid: " + proxy);
}
configuration.setProxyHost(matcher.group(5));
configuration.setProxyPort(Integer.parseInt(matcher.group(6)));
configuration.setProxyUsername(matcher.group(3));
configuration.setProxyPassword(matcher.group(4));
}
return configuration;
}

整个方法 clientConfig 只是样板代码。

有什么优雅的方法可以实现这一点吗?

最佳答案

据我所知,在使用 AWS SDK V1 (1.11.840) 时,如果您有环境变量,例如 HTTP(S)_PROXYhttp(s)_proxy在运行时设置,或类似 http(s).proxyHost 的属性, proxyPort , proxyUser , 和 proxyPassword传递给您的应用程序,您不必设置任何内容。它得到 automatically读入新创建的ClientConfigiration .

因此,您只想设置 ProxyAuthenticationMethod ,如果需要的话。

ClientConfiguration clientConfig(ProxyAuthenticationMethod authMethod) {
ClientConfiguration conf = new ClientConfiguration();
List<ProxyAuthenticationMethod> proxyAuthentication = new ArrayList<>(1);
proxyAuthentication.add(authMethod);
conf.setProxyAuthenticationMethods(proxyAuthentication);
return conf;
}

ProxyAuthenticationMethod可以是ProxyAuthenticationMethod.BASICDIGESTKERBEROSNTLMSPNEGO

关于amazon-web-services - 企业代理背后的 AWS Java SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54594918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com