AWS Java SDK中的AmazonS3类是否使用公共互联网将文件上传到S3存储桶?

0

【以下的问题经过翻译处理】 我正在构建一个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是否会自动执行此操作,还是我需要配置它使用内部网络?如果是这样,我该如何配置?

谢谢。

profile picture
专家
已提问 5 个月前20 查看次数
1 回答
0

【以下的回答经过翻译处理】 AWS API调用是否通过公共互联网传输取决于您的VPC网络设置,具体来说是VPC终端节点。对于S3服务,您可以拥有网关或接口VPC终端节点。通常,网关VPC终端节点是首选,除非您需要从本地访问终端节点。因此,如果您的VPC设置了一个S3网关VPC终端节点,并且在您的路由表中有适当的路由,则来自您的EC2实例对S3的任何AWS API调用都将保留在AWS网络中。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则