BOTO3使用

boto3 使用

  1. 下载安装
  2. 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

发送到

你可能感兴趣的:(BOTO3使用)