【发布时间】:2019-12-04 12:08:41
【问题描述】:
我正在使用 AWS4 生成签名并传入请求标头。生成的签名未得到验证。
const opts = {
service: 's3',
region: 'region-name',
method: 'GET',
host: 's3-{region-name}.amazonaws.com',
path: '/',
};
我正在使用以下代码来生成签名
var signature = aws4.sign(opts, {
accessKeyId: 'XXXXXX',
secretAccessKey: 'XXXXXXXXXXXXXXXXXXXX',
});
并更新 AutoUpdater(某些模块)的请求标头,最终到达 aws。
autoUpdater.requestHeaders = signature.headers;
以错误消息结束
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
有什么建议可以解决这个问题吗?
【问题讨论】:
-
最可能的解释是您使用的参数与您请求中的实际参数不匹配。没有对不一致的容忍。请求真的是路径
/吗?如果是这样,那就是 List Objects 请求,而您没有提及您实际提出的请求类型。 -
刚刚遇到同样的问题@SteadyReader - 你解决了吗?
-
@JTInfinite - 还没有。无法解决它。所以,仍然在我的技术停车区。
标签: amazon-web-services amazon-s3 electron-updater