在Java SDK Amazon S3中配置路径样式
发布时间:2020-12-15 00:45:06 所属栏目:Java 来源:网络整理
导读:我正在使用亚马逊提供的 AWS Java SDK来与S3服务进行交互. 似乎默认情况下,SDK使用虚拟主机样式作为存储桶(即存储桶由bucket-name.s3.amazonaws.com提供.示例: PUT / HTTP/1.1Host: a-given-bucket.s3.amazonaws.comDate: Tue,26 Jun 2012 10:39:40 GMTCont
我正在使用亚马逊提供的
AWS Java SDK来与S3服务进行交互.
似乎默认情况下,SDK使用虚拟主机样式作为存储桶(即存储桶由bucket-name.s3.amazonaws.com提供.示例: PUT / HTTP/1.1 Host: a-given-bucket.s3.amazonaws.com Date: Tue,26 Jun 2012 10:39:40 GMT Content-Type: application/x-www-form-urlencoded; charset=utf-8 Content-Length: 0 但是,我需要在我的应用程序中使用path-style,如下所示: PUT /a-given-bucket/ HTTP/1.1 Host: s3.amazonaws.com Date: Thu,21 Jun 2012 16:27:32 GMT Content-Type: application/x-www-form-urlencoded; charset=utf-8 Content-Length: 0 可以在Java SDK中使用路径样式吗?在积极的情况下,我该怎么办?我看过ClientConfiguration和AmazonS3Client类,但我没有看到任何方法来做… 我的SDK版本在重要的情况下是:2.0.0v201206151133. 谢谢! 费尔明 PD.为简单起见,样本中省略了一些标题. 编辑: 解决方法
不推荐使用带有PathStyleAccess的方法.请改用以下内容:
AmazonS3 s3client = AmazonS3Client.builder() .withCredentials((new AWSStaticCredentialsProvider(credentials))) .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("host","region")) .withPathStyleAccessEnabled(true) .build(); 弃用方法: 现在可以了,我不确定它何时推出,但它至少可以在1.7.8版本的Java AWS SDK中使用. 只需在您的AmazonS3实例上调用setClientOptions即可: AmazonS3 client = new AmazonS3Client(credentials); client.setS3ClientOptions(new S3ClientOptions().withPathStyleAccess(true)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |