boto3 / s3-如何像以前一样连接uid / pwd?

时间:2018-07-31 00:57:40

标签: python amazon-web-services amazon-s3 boto3

我有一些要移植到boto3的代码。

以前可以做到这一点:

conn = boto.connect_s3(sys.argv[1], sys.argv2)

在当前文档中,假定您已使用uid / pwd来配置文件,或者使用了环境变量,因此在启动连接时没有显式传递uid / pwd。

是现在无法按照我的示例传递值,还是在文档中遗漏了某种方式?

谢谢

1 个答案:

答案 0 :(得分:3)

在编写AWS Python代码时,SDK可以自动找到您的AWS凭证。如果已设置AWS CLI,则凭证将存储在〜/ .aws / credentials中。

在您的代码中,前两个参数是aws_access_key_id和aws_secret_access_key。从boto移到boto3时保持不变。

比较以下代码。第一个用于boto(您的示例),第二个用于boto3。

BOTO示例:

import boto
conn = boto.connect_s3(
    aws_access_key_id='<aws access key>',
    aws_secret_access_key='<aws secret key>')

for bucket in conn.get_all_buckets():
        print(bucket.name)

BOTO3示例:

import boto3
client = boto3.client(
    's3',
    aws_access_key_id='<aws access key>',
    aws_secret_access_key='<aws secret key>')

response = client.list_buckets()

for bucket in response['Buckets']:
    print(bucket['Name'])