我在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上做一个简单的替换,但它不是一个优雅的解决方案。
好的,问题在于桶名。存储桶名称中的点字符造成了所有麻烦。
foo-bar-com作为存储桶名称按预期工作。 foo.bar.cam.s3。存储桶名称导致https异常。