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

S3 URL签名失败(我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法)

许远航
2023-03-14

我试图生成签名的URL来上传和下载我的S3 bucket中的对象,但它失败了,“SignatureDoesNotMatch”如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><AWSAccessKeyId>AKIAJ66RWEJPYWX6PL2A</AWSAccessKeyId><StringToSign>GET

我明白这是这里描述的问题的症状

final ZonedDateTime expiration = ZonedDateTime.now().plusSeconds(expirationSeconds);

final GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(
    bucketName, objectId.toString());
generatePresignedUrlRequest.setMethod(isUpload ? HttpMethod.PUT : HttpMethod.GET);
generatePresignedUrlRequest.setExpiration(Date.from(expiration.toInstant()));

return amazonS3Client.generatePresignedUrl(generatePresignedUrlRequest).toURI();

而且,是的,我的桶存在。我怎么能用这个水落石出呢?

共有1个答案

上官鸿祯
2023-03-14

我发现了问题,我正在使用chrome插件“高级REST客户端”发送请求,我猜一些CORS规则会使该应用程序的JavaScript请求失败。从浏览器的地址文件执行请求是有效的。

 类似资料:
  • 我试图上传图片到s3与预先签署的url从aws SDK生成。 对于上面的返回url,当我试图访问它时,它给出了一个错误 null CORS配置 更新的解决方案

  • 我正试图在iOS上执行AWS上传。我正在遍历一个对象数组,并将大量大小不同的图像(1000+)上传到S3 bucket中。使用: 当我到达大约第700张图像时,上传过程开始变得非常缓慢,然后我开始在随后的每一次图像上传中收到这些错误: 编辑2:每个Yosuke请求的代码(我只是构建了一个请求对象数组,然后循环遍历数组并上传每个请求):

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

  • 我试图从我的bucket中获取一个对象,但总是出现“签名不匹配”错误。我从AWS示例代码中获得了签名生成函数,因此我确信这是可行的。我还测试了上传功能,它可以正常工作。我只是在使用get object函数时遇到了问题。我花了大量的时间来验证这篇文章中的所有场景/答案,但什么都没用。所以我在这里寻求你的帮助。 我在标题中遗漏了什么吗?以下是创建的示例规范请求: 编辑1: 我尝试使用编译AWS示例代码

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

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