【AWS】【Python】Botoでs3の署名バージョン4でAPI叩くのをソースコード変えるだけでやる
TLDR;
botoを対応バージョンにしてから、
$ pip install -U boto==2.49.0
boto.config
で指定してやる。
if not boto.config.get('s3', 'use-sigv4'): boto.config.add_section('s3') boto.config.set('s3', 'use-sigv4', 'True') s3 = boto.s3.connect_to_region('ap-northeast-1',is_secure=False) # Example, Get Bucket bucket = instance['bucket'] b = s3.get_bucket(bucket, validate=False)
ここが詳しい
s3の署名バージョン?
この件です。
余談
botoの設定ファイルを変えることでもできるみたい。
[s3] use-sigv4 = True
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingAWSSDK.html#UsingAWSSDK-move-to-Sig4
botoの設定ファイルの管理をしたくなかったから俺はやらなかった。