如何更改S3Client.getURL的格式

问题描述 投票:1回答:1

我在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上做一个简单的替换,但它不是一个优雅的解决方案。

java amazon-web-services spring-boot aws-java-sdk
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.