【发布时间】:2017-12-30 08:41:02
【问题描述】:
我在我的 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 进行简单的替换,但这不是一个优雅的解决方案。
【问题讨论】:
-
您收到的 HTTPS 错误是什么?为什么您认为不同的 URL 格式可以缓解 HTTPS 问题?
-
它大喊“错误代码:SSL_ERROR_BAD_CERT_DOMAIN”。 my_bucket_name.s3.eu-central-1.amazonaws.com 使用了无效的安全证书。使用 ttps://s3.eu-central-1.amazonaws.com 我可以缓解这个问题。
-
您是否尝试在 Firefox 中访问此 URL?您是否尝试过 Chrome 中的网址?好像firefox有一个bugsupport.mozilla.org/en-US/questions/1049026
-
Chrome 报告同样的 https 错误。 coursera_assets_example 在两种浏览器中都能正常工作,这很奇怪。看来是我的存储桶配置导致了问题。
-
@Anuruddha - 检查我的答案,这是我的愚蠢错误。因此,感谢您的谈话,它帮助我解决了这个问题。
标签: java amazon-web-services spring-boot aws-java-sdk