2015-10-03 88 views
0

我試圖生成簽名的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(); 

而且,是的,我的桶的存在。我怎樣才能達到這個底部?

+0

錯誤消息在中間被切斷。你能發佈整件事嗎? –

+0

做一些簡單的事情來測試它是否真的是憑證錯誤,例如做一個簡單的桶列表。 – jarmod

回答

0

我發現了這個問題,我正在使用那個chrome插件「高級REST客戶端」來發送請求,我想一些CORS規則會使請求失敗,從該應用程序的JavaScript。從瀏覽器的地址字段請求工作。

相關問題