2014-03-07 42 views
5

我想用Eclipse測試AWS s3和Eclipse,我只是試圖執行Amazon s3示例,但它不能識別我的憑據,我敢肯定我的憑據是合法的,它給了我以下錯誤:Amazon AWS 403 InvalidAccesskey當我運行Amazon S3示例時出錯

============================ =============== Amazon S3入門 ============================ ===============

清單存儲區 捕獲到AmazonServiceException,這意味着您的請求將其發送到Amazon S3,但由於某種原因被拒絕並顯示錯誤響應。

錯誤消息:狀態碼:403,AWS服務:Amazon S3,AWS請求ID:057D91D336C1FASC,AWS錯誤代碼:InvalidAccessKeyId,AWS錯誤消息:您提供的AWS訪問密鑰ID在我們的記錄中不存在。

HTTP狀態代碼:403 AWS錯誤代碼:InvalidAccessKeyId 錯誤類型:客戶端 請求ID:057D91D336C1FASC

+1

'您提供的AWS訪問密鑰ID在我們的記錄中不存在'表示它正在接收無效的訪問密鑰。您可能會將訪問密鑰與某些不可見字符一起傳遞。在使用AWS-CLI時,我在我的ubuntu上看到過類似的錯誤。後來發現這是我複製/粘貼密鑰的方式的一個問題。所以,從視覺上來說,這把鑰匙對我來說看起來不錯,但它有一些不可見的字符附加在它上面。 – slayedbylucifer

+0

當我沒有包含'sessionToken'時(但是這是在Objective-C中),我遇到了這個問題。可能會幫助別人。 – RyanJM

回答

0

一個小更新這裏: 所以有這麼AWS會在計算機系統中的證書文件。我的情況是'/Users/macbookpro/.aws/credentials'

這個地方的文件決定了默認的accessKeyId和東西..繼續並更新它。

所以我遇到了同樣的問題,但我想我想通了。 我正在使用Node.js,但我認爲問題應該是相同的,因爲它們是如何構造它們的對象是問題。

在JavaScript

如果在後臺運行此,

var aws = require('aws-sdk'); 
aws.config.accessKeyId= "Key bablbalab" 
console.log(aws.config.accessKeyId) 

,你會發現它打印出不同的東西。堂妹設置accessKeyId的正確的方法是不是他們在官方網站上的教程

aws.config.accessKeyId="balbalb" 

aws.config.loadFromPath = ('./awsConfig.json') 

或者任何已提供。 如果你登錄了整個「aws.config」,你會找到正確的方法是

console.log(aws.config) 
console.log(aws.config.credentials.secretAccessKey) 
aws.config.credentials.secretAccessKey="Key balbalab" 

看到物體的結構?存在不一致性