运行 Amazon S3 示例时出现 Amazon AWS 403 InvalidAccesskey 错误
Posted
技术标签:
【中文标题】运行 Amazon S3 示例时出现 Amazon AWS 403 InvalidAccesskey 错误【英文标题】:Amazon AWS 403 InvalidAccesskey Error when I run the Amazon S3 Sample 【发布时间】:2014-03-07 09:44:40 【问题描述】:我正在尝试使用 Java 使用 Eclipse 测试 AWS s3,我只是在尝试执行 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
【问题讨论】:
The AWS Access Key Id you provided does not exist in our records
表示它正在接收无效的访问密钥。您可能一直在传递带有一些不可见字符的访问密钥。在使用 AWS-CLI
时,我在我的 ubuntu 上看到了类似的错误。后来发现是我复制/粘贴密钥的方式有问题。所以,从视觉上看,这把钥匙对我来说看起来不错,但它附加了一些不可见的字符。
当我没有包含 sessionToken
时遇到了这个问题(但这是在 Objective-C 中)。可能对其他人有帮助。
【参考方案1】:
这里有一点更新:
所以有一个 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"
你看到对象的结构了吗?有不一致的地方
【讨论】:
以上是关于运行 Amazon S3 示例时出现 Amazon AWS 403 InvalidAccesskey 错误的主要内容,如果未能解决你的问题,请参考以下文章
将图像上传到 Amazon S3 时出现 NotAuthorizedException
上传时出现 Amazon S3 存储桶 MalformedXML 错误
将 div 中的 amazon s3 图像转换为画布时出现跨源问题