运行 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 错误

页面刷新时出现Amazon AWS S3 404错误

将 div 中的 amazon s3 图像转换为画布时出现跨源问题

使用预签名 URL 将文件上传到 Amazon S3 时出现 CORS 错误

服务模型时出现 Amazon Sagemaker ModelError