我有一些要移植到boto3的代码。
以前可以做到这一点:
conn = boto.connect_s3(sys.argv[1], sys.argv2)
在当前文档中,假定您已使用uid / pwd来配置文件,或者使用了环境变量,因此在启动连接时没有显式传递uid / pwd。
是现在无法按照我的示例传递值,还是在文档中遗漏了某种方式?
谢谢
答案 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'])