我試圖生成簽名的URL來上傳和下載S3存儲桶中的對象,但是失敗「SignatureDoesNotMatch」如下所示。簽名S3網址失敗(我們計算的請求籤名與您提供的簽名不符)檢查您的密鑰和簽名方法
<?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
我明白,這是在這裏
Amazon MWS - request signature calculated does not match the signature provided
描述問題的症狀是,我的憑據是某種錯誤的。我再次檢查了我的.aws/credentials
文件並生成了新文件。此外,我可以使用這些憑證執行其他AWS操作,例如查詢dynamoDb或列出我的存儲桶。
我用它來生成的網址的代碼,我從這裏複製:
http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURLJavaSDK.html
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();
而且,是的,我的桶的存在。我怎樣才能達到這個底部?
錯誤消息在中間被切斷。你能發佈整件事嗎? –
做一些簡單的事情來測試它是否真的是憑證錯誤,例如做一個簡單的桶列表。 – jarmod