使用 restTemplate 获取 S3 的 url 请求的 SignatureDoesNotMatch 错误

SignatureDoesNotMatch error using restTemplate to get url request of S3

我正在尝试使用 restTemplate 发送 S3 的 HTTP GET 请求,但我收到 SignatureDoesNotMatch 错误:我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。

有谁知道导致此错误的原因吗?

找到问题了!

显然我的问题不准确,就像我从 S3 得到的错误一样 - 不具有指示性。

我实际搜索的是如何使用 Rest 模板从 S3 url 下载文件。 所以我不得不添加以下配置并使用这段代码来解决它:

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new ByteArrayHttpMessageConverter());
HttpHeaders headers = new HttpHeaders();
String url = URLDecoder.decode(path, "UTF-8");
ResponseEntity<byte[]> response = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(headers), byte[].class);