如何更改S3Client.getURL

时间:2017-12-30 08:41:03

标签: java amazon-web-services spring-boot aws-java-sdk

我在Spring Boot应用程序中使用AWS Java SDK。 目前,当我想返回我使用的s3对象的URL时:

s3Client.putObject(new PutObjectRequest(S3_BUCKET_NAME, key,fileToUpload));
URL signedUrl = s3Client.getUrl(S3_BUCKET_NAME, key);

signedUrl看起来像这样:

https://<my_bucket_name>.s3.eu-central-1.amazonaws.com/<my_key>

问题是此URL无效(在连接期间返回HTTPS错误)。现在,我无法配置我的自定义域并通过CloudFront配置解决问题。

所以我的想法是在SDK上强制使用不同的格式。像这样:

https://s3.eu-central-1.amazonaws.com/<my_bucket_name>/<my_key>

有人能指出我正确的方向吗?

PS: 我知道,我可以在URL上做一个简单的替换,但它不是一个优雅的解决方案。

1 个答案:

答案 0 :(得分:1)

好的,问题出在了桶名。存储桶名称中的点字符造成了所有麻烦。

foo-bar-com作为存储桶名称按预期工作。 foo.bar.cam.s3。存储桶名称导致https异常。