当前位置: 首页 > 知识库问答 >
问题:

AWS SES BOTO3-如何修复“我们计算的请求签名与签名不匹配”错误?

常英纵
2023-03-14

我正在按照示例指南使用python发送电子邮件,并得到一个错误,该错误表示“我们计算的请求签名与您提供的签名不匹配。请检查您的AWS秘密访问密钥和签名方法。”问题是我没有自签任何东西。博托应该在后端处理所有这些。

翻看关于S3 buckets的类似问题的评论,很多人对他们键中的特殊字符有困难。一个人说这个问题是关键的a+。我尝试创建新凭据,因为我的凭据确实有+。新的凭据中有一个/,相反,我得到的错误是“请求中包含的安全令牌无效”。有些人还说,当他们使用正斜杠时,他们得到的是标题中的错误,而不是令牌无效错误。

The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details. This is being created under the hood by boto3. Is there any way to see what boto3 is sending for myself?

The Canonical String for this request should have been
'POST
/

content-type:application/x-www-form-urlencoded; charset=utf-8
host:email.us-east-1.amazonaws.com
x-amz-date:20210602T203507Z

content-type;host;x-amz-date
f7db71769583b2ac6313966e2c40eef110add591a5008c5b3ba727d66fb1fffe'

The String-to-Sign should have been
'AWS4-HMAC-SHA256
20210602T203507Z
20210602/us-east-1/ses/aws4_request
c7d4af550cec63d9b23b3fcca2d4cad3a9587fc565f211626ae908b7bcb6b737'

共有1个答案

越开畅
2023-03-14

作为过程,您必须在您的一边计算签名,并将相同的签名传递给AWS。然后AWS再次使用输入值在其旁边生成签名,并尝试与您提供的匹配。

据我所知,这通常不匹配,因为您的输入数据或电子邮件内容包含一些垃圾字符,如没有ascii字符(这通常发生在您将内容从文档复制到HTML或表单值时)。尝试删除垃圾字符。

使用这个Python脚本删除非ascii字符一旦你收到作为输入或内容的电子邮件。

https://gist.github.com/aviboy2006/ca1e50f1cb1a32f7544f2f0af1fb928d

 类似资料:
  • 我正在尝试用以下代码连接到我的Amazon S3 bucket: 我的config.php文件如下: 它将产生以下错误:

  • 我正试图上传一张使用AWS S3 SDK的图片。现在,这以前是有效的,但由于某种原因,它停止了工作,我开始得到这个错误: 现在,当我点击链接时,它会给我一个'NoSuchKey'错误: 我真的不明白这一点,因为我的键实际上只是一个字符串。我也试图上传一些东西,所以显然关键不会存在-我正在努力上传它! 另一个教程来自一个博客,我没有它的链接,但我上面的代码与文档中的这个教程相同。我所做的只是把它移到

  • 我有不同的对象来生成保存在S3中的文件。每个对象调用以下函数来保存文件。 我只有以下几个问题。对象要么总是保存文件,要么永远无法保存文件。 错误是 我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅REST身份验证和SOAP身份验证。(服务:S3,状态代码:403,请求ID:79b6c0a2-0d74-1f30-a4bf-246e9631ccd8,扩

  • 从过去的3天,我被困在同一个问题的签名。我不明白如何走出这一步。 我正在尝试获取一个预签名的网址: 我使用这个预先签名的url将图像文件上传到s3存储桶中,方法是: 并且该文件已成功上传到 s3 存储桶,我可以在 aws s3 存储桶控制台中看到。 问题是,如果我尝试从终端使用curl放置任何其他图像文件,或者尝试在浏览器中打开url,我得到的预签名url会给我带来签名不匹配错误。 如果我做错了,

  • 我试图按照教程HTTP://docs.aws.amazon.com/amazons3/latest/api/sigv4-post-example.html使用HTTP post方法将图像上传到s3 bucket。但我每次都得到以下错误 政策如下: 生成策略和签名的代码将粘贴到相关的表单字段中:

  • 我想从网站content.geappliances.io使用AWS API网关得到响应,但总是得到错误: {“信息”:"我们计算的请求签名与您提供的签名不匹配。请检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。\n\n此请求的规范字符串应为\n'GET\n/search/b2b/results\n\n内容类型:\n host:content.geapplications.io\