boto3 使用
- 下载安装
- quickstart
下载安装
pip install boto3
配置
安装aws cli 客户端
pip install awscli
note:
先安装boto3,再安装awscli
安装完成后,在终端就可以type:
aws configure
根据提示输入access_key_id, secret_access_key,and region name
除了在终端输入aws configure
也可以在~/.aws/
下的config 和Credentials 进行配置
链接:
boto3 session
class boto3.session.Session
(aws_access_key_id=None, aws_secret_access_key=None, aws_session_token=None,region_name=None,botocore_session=None, profile_name=None)
assession 存储配置状态并允许你创建服务客户端和资源
参数:
- aws_access_key_id(字符串) -- AWS access key ID
- aws_secret_access_key(字符串) -- AWS secret access key
- aws_session_token(字符串) -- AWS 临时session token
- region_name(字符串) -- 当创建新的连接时的默认区域
- botocore_session(botocore.session_Session) -- 使用这个Botocore session 而不是创建一个 new dafault one
- profile_name(字符串) -- 配置文件的名字去使用,如果没有给出,就用默认的profile
available_profiles
session 证书可用的配置文件
client(service_name,region_name=None, api_version=None,use_ssl=True, verify=None,endpoint=None, aws_acess_key_id=None, aws_secret_key=None,aws_session_token=None config=None)
通过名字去创建一个低等级的服务客户端
参数
- service_name(字符串) -- 服务器的名字,例如 's3' 或者 'ec2',可以通过
get_available_services()
去获得有效的一串服务器 - region_name(字符串) -- 与客户端相关联的区域名字,一个客户端关联单个区域
- api_version(字符串) -- 要用的API版本,默认的,当创建一个新的client,botocore将使用最新的API version.如果想用客户端的之前的API 版本,你只需要指明这个参数。
- use_ssl(boolean) -- 是否使用SSL,默认是使用SSL,注意:不是所有的服务支持no-ssl 连接
- verify(字符串或者布尔值) -- 是否去认证ssl证书,默认SSL证书需要认证,你可以提供以下的值 False -不去认证SSL证书的有效性,SSL仍然被使用,但是SSL 证书不会被认证 path/to/cert/bundle.pem -要使用的CA证书包的文件名
- endpoint_url -为构建的client去用的全的url,正常情况下,botocore会自动构建一个适合的URL去用来和服务器交流。你可以去指定一个全的URL,(including http/https 模型)去重写这个行为,如果这个value提供了,那
use_ssl
将被忽略 - aws_access_key_id(字符串) - 完全的可选项,如果不提供, 将用session的配置,
- aws_secret_access_key(字符串) - 与上面参数类似,可由session自动提供
- aws_session_token(字符串) - 与上面类似
- config(boto.client.Config) 高级的客户端配置选项
返回值
Service client instance
events
session的事件发射器
get_available_partitions()
列出可用的分区
返回类型:列表
返回值:返回一个含有分区名字的列表
__get_available_regions(service_name, partition_name='aws', allow_non_regional=False)
列出一个特定分区的区域和端点名字
返回值:一个包含端点名字的列表 例如["us-east-1"]
get_available_resources()
获得一个可用的能够通过Session.resources()加载为资源客户端的服务列表,
返回类型:列表
返回值:
服务名字的列表
get_available_services()
获得一个能通过Session.client() 加载为低等级客户端的服务
返回类型:列表
返回值:服务名字的列表
resource(service_name, region_name=None,api_verson=None, use_ssl=True, verify=None, endpoint_url=None, aws_access_key_id=None, aws_secret_access_key=None, aws_session_token=None, config=None)
通过名字创建一个资源服务客户端
返回值:
ServiceResource 的子类
Service Amazon S3
创建一个连接:
#boto3
import boto3
s3 = boto3.resource('s3')
创建一个Bucket
在boto3,所有的行为必须通过关键字参数传递进去,并且,一个bucket的配置必须手动配置
# Boto 3
s3.create_bucket(Bucket='mybucket')
s3.create_bucket(Bucket='mybucket',CreateBucketConfiguration={'LocationConstraint': 'us-west-1'})
访问一个bucket
用Boto3的resource 去获得一个bucket是非常方便的,但不会自动验证bucket是否真的存在
# Boto 3
import botocore
bucket = s3.Bucket('mybucket')
exists = True
try:
s3.meta.client.head_bucket(Bucket='mybucket')
except botocore.exceptions.ClientError as e:
# If a client error is thrown, then check that it was a 404 error.
# If it was a 404 error, then the bucket does not exist.
error_code = int(e.response['Error']['Code'])
if error_code == 404:
exists = False
发送到