Java 为什么不是';AmazonS3Client是否使用我设置的代理?
我正在运行以下代码:Java 为什么不是';AmazonS3Client是否使用我设置的代理?,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,我正在运行以下代码: String urlString = rootUrl + "/" + path; AWSCredentials myCredentials = new BasicAWSCredentials(EnvironmentVariables.AWS_ACCESS_KEY, EnvironmentVariables.AWS_SECRET_KEY); ClientConfiguration clientConfiguration = new ClientCon
String urlString = rootUrl + "/" + path;
AWSCredentials myCredentials = new BasicAWSCredentials(EnvironmentVariables.AWS_ACCESS_KEY, EnvironmentVariables.AWS_SECRET_KEY);
ClientConfiguration clientConfiguration = new ClientConfiguration();
if ("true".equalsIgnoreCase(EnvironmentVariables.proxySet)) {
logger.info("EnvironmentVariables.proxyHost=" + EnvironmentVariables.proxyHost);
clientConfiguration.setProxyDomain(EnvironmentVariables.proxyHost);
logger.info("EnvironmentVariables.proxyPort=" + EnvironmentVariables.proxyPort);
clientConfiguration.setProxyPort(Integer.valueOf(EnvironmentVariables.proxyPort));
}
TransferManager tx = null;
try {
tx = new TransferManager(new AmazonS3Client(myCredentials, clientConfiguration));
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentType(pathToContentType(path));
Upload upload = tx.upload(bucketName, path, data, objectMetadata);
upload.waitForUploadResult();
return new URL(urlString);
} catch (InterruptedException e) {
throw new IllegalStateException("Interrupted when uploading the image to S3", e);
} catch (MalformedURLException e) {
throw new IllegalStateException("Invalid URL: " + urlString, e);
} finally {
if (tx != null) {
tx.shutdownNow();
}
}
这在没有代理的情况下可以正常工作,但是如果我打开代理,我认为它没有被使用。下面是我如何判断的:我在if
语句中遇到了一个断点,并将proxyHost从“proxy.com”(存在的主机)更改为“proxy.com2”(不存在的主机)。一切都很好,就好像我没有打开代理代码一样。如果它正在使用我的主机,我希望这会出错
如何让S3客户端使用我提供的代理设置
我正在使用amazon sdk的1.8.4版本。我将我的
setProxyDomain
更改为setProxyHost
,它开始像我预期的那样出错