在JAVA中使用S3的VPC端点获取S3对象的方法是什么?我要用一个简单的http客户端吗?或者有没有办法使用AmazonS3ClientBuilder?
答案 0 :(得分:0)
AmazonS3ClientBuilder可用于构建可连接到特定端点的客户端。没有必要编写自己的低级客户端!
以下是一个例子:
BasicAWSCredentials myCredentials = new BasicAWSCredentials("access_key", "secret_key");
AWSCredentialsProvider myCredentialsProvider = new StaticAWSCredentialsProvider(myCredentials);
String myEndpoint = ".."; // set your endpoint here
String myRegion = ".."; // set your region (ie. us-east-1, or us-east-1 etc.)
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withCredentials(myCredentialProvider)
.withEndpoint(myEndpoint)
.withRegion(myRegion)
.build();
答案 1 :(得分:0)
配置后,如果使用S3 VPC端点,则不会以任何方式执行任何。代码中没有任何内容发生变化。
当VPC中的子网与为VPC端点配置的路由表相关联时,只会发生一件事:
那就是它。
路由表中的前缀列表 pl-xxxxxxxx
表示您所在地区与S3关联的所有公共子网的列表。该列表由AWS基础架构自动维护。当实例将流量发送到S3时,它会执行DNS查找以查找存储桶的IP地址。当它连接到该IP地址时,如果实例子网的路由表包含使用S3的VPC端点的该前缀列表的条目,则它通过端点连接到S3。
与指定路由表关联的子网中的所有实例都自动使用端点来访问服务;与指定路由表无关的子网不使用端点来访问服务。
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-routing