boto3で初期化せずに切り替える

こんにちは。hacknoteのr.katoです。

今回はboto3のAPIの切り替えでいちいち初期化をしなくて済む方法を見つけたので紹介していきます。

方法

次のようにresourceで設定し、S3のBucketにアクセスしていた時に、

sess = boto3.Session(aws_access_key_id = access_key_id,aws_secret_access_key = secret_access_key)
s3 = sess.resource('s3')
s3_buket = s3.Bucket(BUCKET)

そのまま、clientを使いたい際は次のようにします。

sess = boto3.Session(aws_access_key_id = access_key_id,aws_secret_access_key = secret_access_key)
s3 = sess.resource('s3')
s3_buket = s3.Bucket(BUCKET)

s3_client = s3.meta.client