http - SignatureDoesNotMatch 错误使用 restTemplate 获取 S3 的 url 请求
问题描述
我正在尝试使用 restTemplate 发送 S3 的 HTTP GET 请求,但出现 SignatureDoesNotMatch 错误:我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。
有谁知道什么会导致这个错误?
解决方案
发现问题了!
显然我的问题不准确,就像我从 S3 得到的错误一样 - 不是指示性的。
我实际搜索的是如何使用 Rest Template 从 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);
推荐阅读
- javascript - node-soap 上的身份验证问题
- javascript - 如何刷新 Firebase 会话 Cookie
- javascript - 在 Puppeteer 中的 main 和 renderer 函数之间进行通信
- ruby - 需要在红宝石中
- java - 将HashMap排序成TreeMap:自定义比较器删除具有相同键的值
- python - Python中的最大预期浮点错误
- javascript - 使用 JavaScript 将 5 个关键字随机插入 HTML 表格的一部分
- javascript - 在 Java Nashorn 上运行 Node Lib
- javascript - 如何使我的选项卡中的活动按钮具有“活动”类?
- javascript - 有条件地在反应中定义一个常量