美文网首页
BOTO3使用

BOTO3使用

作者: 11月的射手座 | 来源:发表于2018-01-10 14:57 被阅读2304次

    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使用

          本文链接:https://www.haomeiwen.com/subject/fpeonxtx.html