gpt4 book ai didi

python - 由于 InvalidAccessKey 无法获取 s3 存储桶 403,但可以从 CLI 获取

转载 作者:行者123 更新时间:2023-12-01 09:21:36 32 4
gpt4 key购买 nike

我尝试通过 boto 访问 S3 存储桶并收到 403。此代码:

from boto.s3.connection import  S3Connection
conn = S3Connection()
bucket = conn.get_bucket('my-bucket')
files = bucket.list()

在 get_bucket 行返回 403(我已删除这些值)

<Error>
<Code>InvalidAccessKeyId</Code>
<Message>The AWS Access Key Id you
provided does not exist in our records.</Message>
<AWSAccessKeyId>*** </AWSAccessKeyId>
<RequestId>***</RequestId>
<HostId>***</HostId>
</Error>

我已经看到了有关设置 validate=False 的答案,如下所示 boto s3 Bucket versus get_bucket但是当我尝试列出存储桶时,我在下一行遇到了相同的错误。

如果我运行 CLI 命令

aws s3api list-objects --bucket my-bucket

我得到了内容列表。

如果我运行

aws configure list --profile default

配置包含与 XML 错误消息中完全相同的访问 ID。不存在其他配置文件,所以我想知道它如何使用 CLI 中完全相同的 key 而不是 boto 来工作。

有什么想法吗?

最佳答案

我们正在使用联合访问,AWS 论坛上隐藏的评论对我有所帮助。

如果您使用 boto 联合用户,您还需要传入安全 token 。默认构造函数S3Connection()没有传递这个,所以你需要自己做:

conn = S3Connection(aws_access_key_id='YOURKEYID', 
aws_secret_access_key='YOURSECRETKEY', security_token='YOURTOKEN')

然后就可以了。

关于python - 由于 InvalidAccessKey 无法获取 s3 存储桶 403,但可以从 CLI 获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50763147/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com