2017-08-09 6 views
-1

私は/bucket1/bucket2/etc/にアクセスしたいバケットのパスを知っていますが、boto3経由でアクセスする方法を理解できません。S3のBoto3でネストされたバケットにアクセスする

ソースから始まるすべてのバケットを列挙できますが、必要なバケットに到達できません。私が行うことができる。例えば

prod_bucket = s3.Bucket('prod') 

しかし、私は行うことはできません。

prod_bucket = s3.Bucket('prod/prod2/') 

TIA

+1

あなたは間違った用語を使用しています。バケットは、名前空間とも呼ばれるエントリポイントです。どうすれば 'aws s3 ls s3:// 'prod/prod2 /''をCLIから呼び出すのですか –

+0

CLIでうまく動作しますが、boto3/pythonと同じように動作しません。 –

答えて

2

ネストされたバケットがありません。バケツとオブジェクトがあります。

s3 = boto3.client('s3') 
object = s3.get_object(Bucket='prod', Key='prod2/..') 

または:

s3 = boto3.resource('s3') 
bucket = s3.Bucket('prod') 
object = bucket.Object('prod2/..') 

参照してください:get_object

+0

それは私のために働かない、私は "botocore.errorfactory.NoSuchKey"を得る。私は二重チェックしたにもかかわらず、名前/キーは正しいです。 –

+0

ありがとう! –

関連する問題