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
EXPERTE
gefragt vor 5 Monaten24 Aufrufe
1 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen