【以下的问题经过翻译处理】 我正在构建一个Spring Boot应用程序,可以将图片上传到S3桶中。完成后,它将在与我的S3桶位于同一区域的EC2实例上运行。
Spring Boot应用程序使用AWS Java SDK连接并上传文件到S3。上传文件的S3Client类以以下方式实例化:
@Bean
public AmazonS3 s3client() {
BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsId, awsKey);
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion(Regions.fromName(region))
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.withClientConfiguration(
new ClientConfiguration()
.withMaxConnections(MAX_CONNECTIONS)
.withMaxErrorRetry(3)
)
.build();
return s3Client;
}
当我从本地主机上载文件时,必须通过公共互联网进行。但是,一旦应用程序在EC2上运行,我希望s3Client使用AWS区域的内部网络,因为速度更快。
我的问题是:s3Client是否会自动执行此操作,还是我需要配置它使用内部网络?如果是这样,我该如何配置?
谢谢。