boto3 の公式ドキュメント ( https://boto3.readthedocs.org/en/latest/reference/services/s3.html#S3.Bucket.create ) と実際に返されるものとの間にイライラする不一致があることがわかりました。 .
念のため、boto3 1.2.1 と botocore 1.3.2 を使用しています (どちらも pip でインストールされています)。
boto3.Session
メソッドを使用してバケットを作成することについて具体的に話しています。
import boto3
session = boto3.Session(region_name = 'us-west-2', \
aws_access_key_id = 'AAA', \
aws_secret_access_key = 'BBB')
s3 = session.resource('s3')
bucket = s3.Bucket('testbucket').create()
s3.Bucket('testbucket').create()
ドキュメントで、コマンドは次のような辞書を返すと言われています
{
'Location': 'string'
}
代わりに、次のような辞書を取得します。
{
u'Location': '/testbucket',
'ResponseMetadata': {
'HTTPStatusCode': 200,
'HostId': 'alphnumericalmixed/alphanumericalmixed',
'RequestId': 'MIXEDUPPERANDNUMBERS123'
}
}
delete()
メソッドを呼び出して S3 オブジェクトも削除しようとすると、同様の結果が得られます。
# some initialisation as above code
obj=bucket.put_object(Body='123', Key='456')
print obj.delete()
私が得る場所:
{'ResponseMetadata':
{'HTTPStatusCode': 204,
'HostId': 'something/something',
'RequestId': 'SOMETHING'}}
( https://boto3.readthedocs.org/en/latest/reference/services/s3.html#S3.Object.delete )の代わりに:
{
'DeleteMarker': True|False,
'VersionId': 'string',
'RequestCharged': 'requester'
}
boto3 は botocore ライブラリの関与するラッパーであり、返さRequestID
れる辞書のキーは最終的にbotocore/parsers.py
. create
実際には追加情報があるため、戻り値は理解していますが、理解できないのは、put_object()
メソッドの戻り値にドキュメントに類似したものが含まれていないことです
私が解決しようとしているのは、公式ドキュメントが私に嘘をついているかどうかです。