【问题标题】:How to Change Amazon S3 file URL Like s3.amazonaws.com/bucket/key from bucket.s3.amazonaws.com/key in Java?如何更改 Amazon S3 文件 URL,如 Java 中 bucket.s3.amazonaws.com/key 中的 s3.amazonaws.com/bucket/key?
【发布时间】:2017-08-23 21:02:19
【问题描述】:
使用 AmazonS3 存储桶 - 将文件上传到存储桶后,我们可以使用以下代码获取上传的文件 URL:
String fileDownloadUrl = AmzonS3Client.getUrl(bucketName, fileName);
在结果中,它会给出类似的 URL:bucket.s3.amazonaws.com/key 但我想要 s3.amazonaws.com/bucket/key。那么任何人都可以帮助我如何在 java 中解决这个问题?
【问题讨论】:
标签:
java
file
amazon-s3
aws-sdk
endpoint
【解决方案1】:
默认情况下 pathstyleaccess 为 false,因此您上传的文件应为 bucket.s3.amazonaws.com/key,但当您明确添加 clientOptions -- pathStyleAccess 为 true 时,它将生成类似 s3.amazonaws.com/bucket/key 的 URL。请在下面找到代码sn-p
S3ClientOptions clientOptions = new S3ClientOptions();
clientOptions.setPathStyleAccess(true);
并将此 clientOptions 设置为 Amazons3client。
【解决方案2】:
另一种解决方案:
使用AmazonS3ClientBuilder 和enablePathStyleAccess() 创建AmazonS3Client 对象。
AmazonS3 client = AmazonS3ClientBuilder.standard()
.enablePathStyleAccess()
.withRegion(regionName)
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.build();