AWS::S3::Errors::InvalidAccessKeyId 凭据有效
AWS::S3::Errors::InvalidAccessKeyId with valid credentials
我在尝试将文件上传到 S3 存储桶时遇到以下错误:
AWS::S3::Errors::InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our records.
文件存在,存储桶存在,存储桶允许上传,凭据正确,并且使用具有相同凭据的 CyberDuck 我可以连接并将文件上传到该存储桶。这里的大多数答案都指向凭据被环境变量覆盖,这里不是这种情况,我尝试将它们直接作为字符串传递,并输出它们只是为了确保它是正确的凭据。
v1
AWS.config(
:access_key_id => 'key',
:secret_access_key => 'secret'
)
s3 = AWS::S3.new
bucket = AWS::S3.new.buckets['bucket-name']
obj = bucket.objects['filename']
obj.write(file: 'path-to-file', acl:'private')
这是使用 gem (aws-sdk-v1
) 的 v1
版本,但我也尝试使用 v3
,但我得到了同样的错误。
v3
Aws.config.update({
region: 'eu-west-1',
credentials: Aws::Credentials.new('key_id', 'secret')
})
s3 = Aws::S3::Resource.new(region: 'eu-west-1')
bucket = s3.bucket('bucket-name')
obj = bucket.object('filename')
ok = obj.upload_file('path-to-file')
注意:错误在 obj.write
行抛出。
注意 2:这是 Ruby 上 Rails 4 应用程序的抽佣任务。
终于弄明白了,问题是因为我们使用的是自定义端点,所以找不到凭据,我想这与自定义端点的工作方式不同。
现在要指定自定义端点,出于某种原因,您需要使用一个配置选项 is not documented (or at least I didn't find it anywhere), I actually had to go through paperclip's code 看看那些人是如何处理这个的。
无论如何,v1 的配置与添加的端点配置是这样的:
AWS.config(
:access_key_id => 'key',
:secret_access_key => 'secret',
:s3_endpoint => 'custom.endpoint.com'
)
希望这会节省一些时间。
我在尝试将文件上传到 S3 存储桶时遇到以下错误:
AWS::S3::Errors::InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our records.
文件存在,存储桶存在,存储桶允许上传,凭据正确,并且使用具有相同凭据的 CyberDuck 我可以连接并将文件上传到该存储桶。这里的大多数答案都指向凭据被环境变量覆盖,这里不是这种情况,我尝试将它们直接作为字符串传递,并输出它们只是为了确保它是正确的凭据。
v1
AWS.config(
:access_key_id => 'key',
:secret_access_key => 'secret'
)
s3 = AWS::S3.new
bucket = AWS::S3.new.buckets['bucket-name']
obj = bucket.objects['filename']
obj.write(file: 'path-to-file', acl:'private')
这是使用 gem (aws-sdk-v1
) 的 v1
版本,但我也尝试使用 v3
,但我得到了同样的错误。
v3
Aws.config.update({
region: 'eu-west-1',
credentials: Aws::Credentials.new('key_id', 'secret')
})
s3 = Aws::S3::Resource.new(region: 'eu-west-1')
bucket = s3.bucket('bucket-name')
obj = bucket.object('filename')
ok = obj.upload_file('path-to-file')
注意:错误在 obj.write
行抛出。
注意 2:这是 Ruby 上 Rails 4 应用程序的抽佣任务。
终于弄明白了,问题是因为我们使用的是自定义端点,所以找不到凭据,我想这与自定义端点的工作方式不同。
现在要指定自定义端点,出于某种原因,您需要使用一个配置选项 is not documented (or at least I didn't find it anywhere), I actually had to go through paperclip's code 看看那些人是如何处理这个的。
无论如何,v1 的配置与添加的端点配置是这样的:
AWS.config(
:access_key_id => 'key',
:secret_access_key => 'secret',
:s3_endpoint => 'custom.endpoint.com'
)
希望这会节省一些时间。